日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > STM32如何設(shè)置定時器

          STM32如何設(shè)置定時器

          作者: 時間:2013-02-22 來源:網(wǎng)絡(luò) 收藏

          如何

          下面以stm32的TIM2作為實例一步步配置成為定時器:

          第一種

          對定時器的基本配置

          TIM_TimeBaseStructure.TIM_Period = 1000; //設(shè)置自動裝載

          TIM_TimeBaseStructure.TIM_Prescaler = 35999; //分頻計數(shù)

          TIM_TimeBaseStructure.TIM_ClockDivision = 0;

          TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //選擇向上計數(shù)

          TIM_TimeBaseInit(TIM2, TIM_TimeBaseStructure);

          TIM_Cmd(TIM2, ENABLE); //是能定時器

          始能定時器的中斷:

          TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

          在開啟時鐘里一定要打開TIM2的時鐘,函數(shù)表達式如下:

          RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

          4:中斷向量函數(shù)的編寫:

          void NVIC_Configuration(void)

          {

          NVIC_InitTypeDef NVIC_InitStructure;

          #ifdef VECT_TAB_RAM //如果程序在ram中調(diào)試那么定義中斷向量表在Ram中否則在Flash中

          /* Set the Vector Table base location at 0x20000000 */

          NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

          #else /* VECT_TAB_FLASH */

          /* Set the Vector Table base location at 0x08000000 */

          NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

          #endif

          /* Enable the TIM2 global Interrupt */

          NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;

          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

          NVIC_Init(NVIC_InitStructure);

          }

          5:中斷函數(shù)的編寫:

          當有TIM2的無論哪個中斷觸發(fā)中斷發(fā)生那么就會進入這個函數(shù)

          TIM2_IRQHandler(void)

          所以這個更新事件的中斷判斷要依靠以下語句:

          if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)

          按照以上步驟配置可以順利進行定時器的基本定時應用

          第二種方法:

          /* Enable TIM2 Update interrupt [TIM2溢出中斷允許]*/

          TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);

          中斷中的設(shè)置為:

          if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉