新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F107VCT6的通用定時器配置

        STM32F107VCT6的通用定時器配置

        作者: 時間:2016-11-10 來源:網絡 收藏
        將TIM2的周期配置成0.2ms。
        定時器周期公式:(1+TIM_Prescaler )/72M)*(1+TIM_Period )

        #define NVIC_Priority_Timer2 1

        本文引用地址:http://www.104case.com/article/201611/317515.htm

        unsigned int Period_TIM2 = 14400;

        void TIM2_Init_Config(void)
        {
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

        NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_Priority_Timer2;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        /*
        * (1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+0)/72M)*(1+14400-1) = 0.2ms //5K采樣速度
        */
        TIM_TimeBaseStructure.TIM_Period = Period_TIM2 - 1;
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        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);
        TIM2->CNT = 0;
        TIM_Cmd(TIM2, ENABLE);
        }

        stm32f10x_it.c文件中

        void TIM2_IRQHandler(void)
        {
        if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
        {
        TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

        //添加處理代碼
        }
        }




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 固阳县| 西城区| 雅江县| 通州区| 犍为县| 勃利县| 鞍山市| 英德市| 麟游县| 宁城县| 涿鹿县| 西华县| 龙川县| 华阴市| 阿坝| 中超| 新乐市| 荣昌县| 莱州市| 句容市| 阳原县| 东乡族自治县| 遂溪县| 赤壁市| 怀仁县| 梅州市| 临江市| 荥经县| 宣城市| 碌曲县| 双城市| 称多县| 万安县| 珠海市| 铜陵市| 元阳县| 永寿县| 宁强县| 金塔县| 尖扎县| 苏尼特右旗|