<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32通用定時(shí)器(TIM2-5)基本用法

          STM32通用定時(shí)器(TIM2-5)基本用法

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          STM32的定時(shí)器是個(gè)強(qiáng)大的模塊,定時(shí)器使用的頻率也是很高的,定時(shí)器可以做一些基本的定時(shí),還可以做PWM輸出或者輸入捕獲功能。從系統(tǒng)框架圖下看,名為T(mén)IMx的有八個(gè),其中TIM1和TIM8掛在A(yíng)PB2總線(xiàn)上,而TIM2-TIM7則掛在A(yíng)PB1總線(xiàn)上。其中TIM1&TIM8稱(chēng)為高級(jí)控制定時(shí)器(advanced control timer).他們所在的APB2總線(xiàn)也比APB1總線(xiàn)要好。APB2可以工作在72MHz下,而APB1最大是36MHz。

          本文引用地址:http://www.ex-cimer.com/article/201611/317471.htm


          由上圖可知,當(dāng)APB1 的預(yù)分頻系數(shù)為1 時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于A(yíng)PB1 的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8 或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于A(yíng)PB1 的頻率兩倍。也就是,當(dāng)APB1不分頻,TIM3的時(shí)鐘速度為36MHz,當(dāng)2分頻是,APB1變成18MHz,但是TIM又會(huì)倍頻,即TIM時(shí)鐘等于18*2=36MHz。這里我們用向上計(jì)數(shù)的方式,即TIMx_CNT中的計(jì)數(shù)值達(dá)到TIMx_ARR中的值時(shí),產(chǎn)生中斷,TIMx_CNT又從0開(kāi)始計(jì)。

          按以下步驟編程:
          1.系統(tǒng)初始化,主要初始化時(shí)鐘等。

          2.GPIO初始化,用于LED,有了燈就便于觀(guān)察了。

          3.TIM3的配置。

          4.NVIC的配置。

          5.編寫(xiě)中斷服務(wù)函數(shù)。

          void GPIO_PA_Init()
          {//PA8管腳配置
          GPIO_InitTypeDef GPIO_InitStructure;
          GPIO_DeInit(GPIOA);
          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;//推挽輸出
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);//使能端口時(shí)鐘A
          GPIO_Init(GPIOA, &GPIO_InitStructure);
          }

          void TIMER3_Init()
          {
          TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
          TIM_DeInit(TIM3);
          RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
          TIM_TimeBaseStructure.TIM_Period=10000;//ARR的值
          TIM_TimeBaseStructure.TIM_Prescaler=7200-1;
          TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計(jì)數(shù)模
          TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
          TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
          TIM_Cmd(TIM3, ENABLE); //開(kāi)啟時(shí)鐘
          }

          void NVIC_Configuration()
          {
          NVIC_InitTypeDef NVIC_InitStructure;
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);// 搶占式優(yōu)先級(jí)別
          NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;//指定中斷源
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;// 指定響應(yīng)優(yōu)先級(jí)別1
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
          }

          int main(void)
          {
          Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置
          delay_init(72);//延時(shí)初始化
          GPIO_PA_Init();
          TIMER3_Init();
          NVIC_Configuration();
          while(1);
          }

          void TIM3_IRQHandler()
          {
          if(TIM_GetITStatus(TIM3 , TIM_IT_Update) == SET)
          {
          TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
          if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8)) GPIO_ResetBits(GPIOA, GPIO_Pin_8);
          else GPIO_SetBits(GPIOA, GPIO_Pin_8);
          }
          }



          關(guān)鍵詞: STM32通用定時(shí)器TIM2-

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();