新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32開發板學習筆記--通用定時器

        STM32開發板學習筆記--通用定時器

        作者: 時間:2016-11-28 來源:網絡 收藏
        定時器可以說是單片機最常用的內部資源,連續幾天都在看STM32定時器的使用方法,看固件庫使用手冊看的頭都大了,總算學會了基本的應用。

        1、首先在void NVIC_Configuration(void)中開啟中斷:

        NVIC_DeInit();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        2、初始化定時器

        void TIM_Configuration(void)
        {
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

        TIM_DeInit(TIM2);//復位TIM2定時器


        TIM_TimeBaseStructure.TIM_Period = 1000;//定時1毫秒
        TIM_TimeBaseStructure.TIM_Prescaler = 71;//分頻
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;//TIM_CKD_DIV1; ; // 時鐘分割
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//計數方向向上計數
        TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);


        TIM_ClearFlag(TIM2, TIM_FLAG_Update);


        TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);


        TIM_Cmd(TIM2, ENABLE);
        }

        這樣每隔1ms就中斷一次

        中斷程序寫在 “stm32f10x_it.c”的 void TIM2_IRQHandler(void) 中。

        在中斷服務程序中的末尾一定要加上
        TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);//一定要加上這句,清除TIM2 的中斷待處理位


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 鄂州市| 喀喇沁旗| 博客| 祁门县| 师宗县| 肥东县| 巴林左旗| 罗源县| 阿合奇县| 平江县| 澄城县| 故城县| 绥中县| 建宁县| 洮南市| 宣化县| 彭水| 泊头市| 民丰县| 陆良县| 宜宾市| 峡江县| 扎鲁特旗| 镇原县| 平果县| 翼城县| 凉山| 齐河县| 新巴尔虎左旗| 双峰县| 托里县| 利辛县| 双桥区| 徐水县| 惠安县| 合水县| 云林县| 辽源市| 平邑县| 孝感市| 巴东县|