久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

STM32定時(shí)器的應(yīng)用

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月01日   【字體:

 一:STM32F106 一共有11個(gè)定時(shí)器  2個(gè)高級(jí)定時(shí)器,4個(gè)普通定時(shí)器,2個(gè)基本定時(shí),2個(gè)看門狗,和一個(gè)滴答定時(shí)器

  1:高級(jí)定時(shí)器 計(jì)數(shù)方式(向上,向下)、預(yù)分頻值 1—65532、四通道,輸出輸入捕獲,PWM互補(bǔ)輸出
  2:普通定時(shí)器 計(jì)數(shù)方式(向上,向下)、預(yù)分頻值 1—65532、四通道,輸出輸入捕獲
  3:基本定時(shí)器計(jì)數(shù)方式(向上      )、預(yù)分頻值 1—65532、
二:定時(shí)器配置方法步驟:

  在配置前我們要添加定時(shí)器的庫函數(shù) stm32f10x_tim.c

  1:配置中斷向量表
  2:配置定時(shí)器時(shí)鐘
  3:配置定時(shí)器
  4:使能定時(shí)器
  5:使能中斷

三:事例分析(定時(shí)中斷3)

  1:配置中斷向量表
void NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;   //定時(shí)器中斷3中斷向量
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

}

 2:配置定時(shí)器時(shí)鐘

 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

 3:配置定時(shí)器(初始化)
 void TIM_Config(void)

 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 //TIM_OCInitTypeDef  TIM_OCInitStructure; 
 TIM_DeInit(TIM3);                              //復(fù)位定時(shí)器
 TIM_TimeBaseStructure.TIM_Prescaler = 7200-1;  // 時(shí)鐘預(yù)分頻數(shù)
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 定時(shí)器模式 向上計(jì)數(shù)
 TIM_TimeBaseStructure.TIM_Period = 9999;    // 自動(dòng)重裝載寄存器周期的值( 定時(shí)時(shí)間 ) 累計(jì) 0xFFFF

個(gè)頻率后產(chǎn)生個(gè)更新或者中斷 ( 也是說定時(shí)時(shí)間到 )

 

定時(shí)器時(shí)間計(jì)算:

每次進(jìn)入中斷服務(wù)程序間隔時(shí)間為((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒

// 72000000/7200=10000
// 10000/10000=1s

 

 TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;      // 時(shí)間分割值
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);             // 初始化定時(shí)器 
 TIM_ClearFlag(TIM3,TIM_FLAG_Update);                        //清除定時(shí)器中斷標(biāo)志 
 TIM_Cmd(TIM3, ENABLE);                                      // 4:使能定時(shí)器
 TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);                  // 打開中斷 溢出中斷 5:使能中斷

四:在主函數(shù)運(yùn)行時(shí)調(diào)用這三個(gè)函數(shù)對(duì)定時(shí)器進(jìn)行配置即可。

 

五:定時(shí)中斷函數(shù)的執(zhí)行

 

  TIME3的定時(shí)中斷函數(shù)的執(zhí)行在中斷向量表中,即  stm32f10x_it.c 文件中。

   因?yàn)槭褂玫暮瘮?shù)庫版本不同有的stm32f10x_it.c中給出了void TIM3_IRQHandler(void) {}函數(shù),只需要我們添加相應(yīng)的中斷服務(wù)程序即可,如果stm32f10x_it.c文件中沒有這個(gè)函數(shù)我們就自己創(chuàng)建一個(gè)同名函數(shù)即可。

如:

 這個(gè)例子是判斷中斷標(biāo)志位是否溢出來進(jìn)入中斷,如果溢出就執(zhí)行中斷服務(wù)子程序,特別要注意的是在中斷服務(wù)執(zhí)行前或者執(zhí)行后一定要清楚中斷標(biāo)志位,以免影響后面中斷的進(jìn)入。

 void TIM3_IRQHandler(void)
    

  if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
   
     TIM_ClearITPendingBit(TIM3, TIM_FLAG_Update);

    GPIO_WriteBit(GPIOE, GPIO_Pin_3, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOE,               GPIO_Pin_3))); 
 
 
 }
 
 }

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 九九热re| 国产高清精品一区二区三区 | 日韩在线不卡视频 | 色伊人 | 性福视频在线观看 | 欧美性网| 91午夜在线 | 国产在线视频一区二区董小宛性色 | 日韩欧美国产精品一区二区三区 | 一级毛片播放 | 国产精品明星裸体写真集 | 成人国产精品久久久 | 中文字幕一区二区三区在线观看 | 欧美一级二级视频 | 日韩精品一区二区三区中文字幕 | 日本不卡一区 | 亚洲高清av在线 | 亚洲成av人片在线观看 | 欧美日韩视频在线第一区 | 91成人小视频 | 精品久久久久久久久久久 | 久久综合av| 一区二区三区av | 亚洲视频在线一区 | 国产精品精品视频 | 国产91精品久久久久久久网曝门 | 久久er99热精品一区二区 | 国产精品毛片一区二区三区 | 97精品超碰一区二区三区 | www.色综合| 精久久久 | 免费激情网站 | 国产一区亚洲 | 久久精品欧美一区二区三区麻豆 | 啪啪免费网站 | 午夜视频一区二区 | 一区二区精品 | 午夜精品久久久久久久久久久久久 | 亚洲国产精品一区二区三区 | 91久久久久 | 久久久久久影院 |