新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32如何設置定時器

        STM32如何設置定時器

        作者: 時間:2013-02-22 來源:網絡 收藏

        如何

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

        第一種

        對定時器的基本配置

        TIM_TimeBaseStructure.TIM_Period = 1000; //設置自動裝載

        TIM_TimeBaseStructure.TIM_Prescaler = 35999; //分頻計數

        TIM_TimeBaseStructure.TIM_ClockDivision = 0;

        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //選擇向上計數

        TIM_TimeBaseInit(TIM2, TIM_TimeBaseStructure);

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

        始能定時器的中斷:

        TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

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

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

        4:中斷向量函數的編寫:

        void NVIC_Configuration(void)

        {

        NVIC_InitTypeDef NVIC_InitStructure;

        #ifdef VECT_TAB_RAM //如果程序在ram中調試那么定義中斷向量表在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:中斷函數的編寫:

        當有TIM2的無論哪個中斷觸發中斷發生那么就會進入這個函數

        TIM2_IRQHandler(void)

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

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

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

        第二種方法:

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

        TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);

        中斷中的設置為:

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大竹县| 贡觉县| 白朗县| 岑溪市| 江永县| 金溪县| 普兰县| 吉林省| 沭阳县| 建始县| 祁东县| 习水县| 福贡县| 荥经县| 琼结县| 湄潭县| 清新县| 信阳市| 夏邑县| 江阴市| 磐石市| 墨竹工卡县| 贵港市| 鞍山市| 城固县| 应城市| 军事| 浏阳市| 昌图县| 文昌市| 安丘市| 南皮县| 宁阳县| 新疆| 临朐县| 汉阴县| 来安县| 五指山市| 措美县| 永靖县| 墨脱县|