運(yùn)動(dòng)控制器18:通用定時(shí)器的庫(kù)函數(shù)和基本使用

引腳和定時(shí)器初始化TIM2_Configuration

我們使用TIM2作為普通的定時(shí)器祷杈,一秒以后將LED循環(huán)的點(diǎn)亮和關(guān)閉已旧,結(jié)構(gòu)體初始化函數(shù)如下:

void TIM2_Configuration(void)
{
    //首先申明一個(gè)初始化結(jié)構(gòu)體和開(kāi)啟定時(shí)器時(shí)鐘
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
    TIM_DeInit(TIM2);
    TIM_TimeBaseStructure.TIM_Period=1000;  
    
    //時(shí)鐘為72M冠骄,我們用TIM_Prescaler=71裂允,則時(shí)鐘為1M
    //設(shè)置TIM_Period=1000廓旬,則1ms進(jìn)行一次溢出
    TIM_TimeBaseStructure.TIM_Prescaler= (72 - 1);    
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;   
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
    
    //清更新FLAG,使能中斷和先關(guān)閉時(shí)鐘际插。
    TIM_ClearFlag(TIM2, TIM_FLAG_Update);                           
    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
    TIM_Cmd(TIM2, ENABLE);                                      
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , DISABLE);  
}

用下面的語(yǔ)句對(duì)LED進(jìn)行取反操作碘耳,如下:

if((GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_7 )))
    GPIO_ResetBits(GPIOF, GPIO_Pin_7 );
else
    GPIO_SetBits(GPIOF, GPIO_Pin_7);     

中斷服務(wù)程序

中斷優(yōu)先級(jí)配置函數(shù)如下:

void TIM2_NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure; 
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                                                     
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;   
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}

服務(wù)程序如下:

void TIM2_IRQHandler(void)
{
    if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET ) 
    {   
        TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);    
         time++;
    }           
}

標(biāo)準(zhǔn)庫(kù)函數(shù)


初始化函數(shù)
TIM_TimeBaseInit,以及去初始化TIM_DeInit
  • 功能:定時(shí)器結(jié)構(gòu)體初始化框弛,開(kāi)啟定時(shí)器必須用到
  • 函數(shù)入口:見(jiàn)上文辛辨,主要設(shè)置時(shí)鐘分頻和計(jì)時(shí)器模式
uint16_t  TIM_ClockDivision 
uint16_t  TIM_CounterMode 
uint16_t  TIM_Period 
uint16_t  TIM_Prescaler 
uint8_t  TIM_RepetitionCounter 

輸入捕獲模式下的初始化函數(shù)
初始化 ICStructInit ICInit TIM_TimeBaseStructInit
  • 功能:輸出比較功能的初始化結(jié)構(gòu)體,一共有4個(gè)IC
  • 函數(shù)入口:TIMx 和結(jié)構(gòu)體
uint16_t  TIM_Channel  //4通道
uint16_t  TIM_ICFilter  //濾波
uint16_t  TIM_ICPolarity  //
uint16_t  TIM_ICPrescaler //
uint16_t  TIM_ICSelection //是否直連
TI1_Config
  • 功能:將某個(gè)引腳作為捕獲輸入,對(duì)引腳進(jìn)行配置
  • 函數(shù)入口:4個(gè)
  1. 定時(shí)器1
  2. 極性斗搞,上升沿OR下降沿
  3. 模式:引腳輸入1直接輸入捕獲模塊1
  4. 濾波:具體數(shù)值
  • 函數(shù)輸出:void
輸出比較模式下的初始化函數(shù)
初始化 TIM_OC1Init
  • 功能:輸出比較功能的初始化結(jié)構(gòu)體绞蹦,一共有4個(gè)OC
  • 函數(shù)入口:TIMx 和結(jié)構(gòu)體
uint16_t  TIM_OCIdleState  //閑置時(shí)的狀態(tài)
uint16_t  TIM_OCMode   //激活,PWM榜旦,定時(shí)OR反轉(zhuǎn)
uint16_t  TIM_OCNIdleState //
uint16_t  TIM_OCNPolarity //輸出極性幽七,高低電平
uint16_t  TIM_OCPolarity 
uint16_t  TIM_OutputNState 
uint16_t  TIM_OutputState  //比較輸出的狀態(tài),使能OR
uint16_t  TIM_Pulse //捕獲比較寄存器的值
重載配置 TIM_OC1PreloadConfig
  • 功能:TIMx 重載功能使能
  • 函數(shù)入口:TIMx ENABLE
極性和N極性的配置OC1PolarityConfig和OC1NPolarityConfig
  • 功能:略
  • 函數(shù)入口:TIMx和HIGH和LOW
快速功能配置 OC1FastConfig
  • 功能:TIMx快速功能使能
  • 函數(shù)入口:TIMx ENABLE
內(nèi)部時(shí)鐘配置 InternalClockConfig
  • 功能:使能定時(shí)器的內(nèi)部時(shí)鐘
PWM輸入功能設(shè)置 TIM_PWMIConfig
  • 功能:配置以測(cè)量外部PWM的占空比
  • 為外部捕獲功能溅呢,所以初始化結(jié)構(gòu)體如IC的初始化結(jié)構(gòu)
TIM_BDTRConfig
  • 功能:僅限高級(jí)定時(shí)器
TIM_Cmd 定時(shí)器打開(kāi)
TIM_ITConfig 中斷配置功能
  • 功能:TIMx 中斷配置源使能
  • 函數(shù)入口:中斷源有如下定義的多種
#define TIM_IT_Update                      ((uint16_t)0x0001)
#define TIM_IT_CC1                         ((uint16_t)0x0002)
#define TIM_IT_CC2                         ((uint16_t)0x0004)
#define TIM_IT_CC3                         ((uint16_t)0x0008)
#define TIM_IT_CC4                         ((uint16_t)0x0010)
#define TIM_IT_COM                         ((uint16_t)0x0020)
#define TIM_IT_Trigger                     ((uint16_t)0x0040)
#define TIM_IT_Break                       ((uint16_t)0x0080)
TIM_GenerateEvent 事件配置功能
  • 功能:TIMx 事件配置源使能
  • 函數(shù)入口:事件源有如下定義的多種,同上
  • 事件和中斷的區(qū)別就是澡屡,中斷需要轉(zhuǎn)中斷服務(wù)程序,而事件則自動(dòng)觸發(fā)動(dòng)作咐旧,屬于硬件完成
DMA配置TIM_DMAConfig
  • 函數(shù)入口
    • TIMx
    • TIM_DMABase:DMA可以存儲(chǔ)如下的寄存器驶鹉,如TIM_DMABase_CR, TIM_DMABase_CR2, TIM_DMABase_SMCR,
    • TIM_DMABurstLength:可以是1Transfer和18Transfer
DMA的命令參數(shù)TIM_DMACmd
  • 函數(shù)入口
    • TIMx
    • TIM_DMASource:TIM_DMA_Update或者其他源TIM_DMA_CC1和TIM_DMA_Trigger等
    • NewState:使能
TIM_ITRxExternalClockConfig
  • 功能:外部時(shí)鐘模式1,有多種時(shí)鐘源
TIM_TIxExternalClockConfig
  • 功能:另一種外部時(shí)鐘铣墨,設(shè)置稍復(fù)雜一點(diǎn)
ETR時(shí)鐘TIM_ETRClockMode1Config和TIM_ETRConfig
  • 功能:高級(jí)定時(shí)器用到
TIM_PrescalerConfig
  • 功能:分頻設(shè)置
TIM_SelectInputTrigger
  • 功能:多種輸入觸發(fā)可選
TIM_EncoderInterfaceConfig
  • 功能:編碼器功能配置
TIM_ForcedOC1Config
  • 功能:強(qiáng)制輸出配置
TIM_ARRPreloadConfig
  • 功能:ARR重載
TIM_SelectCOM
  • 功能:高級(jí)功能
TIM_SelectCCDMA
  • 功能:捕獲比較的DMA設(shè)置
TIM_CCPreloadControl
  • 功能:捕獲比較的重載設(shè)置
TIM_OC1PreloadConfig
  • 功能:輸出的重載設(shè)置
TIM_OC2FastConfig
  • 功能:快速性能設(shè)置
TIM_ClearOC1Ref
  • 功能:清OC
TIM_CCxCmd TIM_CCxNCmd
  • 功能:
TIM_SelectOCxM
  • 功能:選擇OC模式
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末室埋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伊约,更是在濱河造成了極大的恐慌姚淆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屡律,死亡現(xiàn)場(chǎng)離奇詭異腌逢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)超埋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)搏讶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人霍殴,你說(shuō)我怎么就攤上這事媒惕。” “怎么了来庭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵妒蔚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巾腕,道長(zhǎng)面睛,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任尊搬,我火速辦了婚禮叁鉴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佛寿。我一直安慰自己幌墓,他們只是感情好但壮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著常侣,像睡著了一般蜡饵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胳施,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天溯祸,我揣著相機(jī)與錄音,去河邊找鬼舞肆。 笑死焦辅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的椿胯。 我是一名探鬼主播筷登,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼哩盲!你這毒婦竟也來(lái)了前方?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤廉油,失蹤者是張志新(化名)和其女友劉穎惠险,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體娱两,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莺匠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年金吗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了十兢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摇庙,死狀恐怖旱物,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卫袒,我是刑警寧澤宵呛,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站夕凝,受9級(jí)特大地震影響宝穗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜码秉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一逮矛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧转砖,春花似錦须鼎、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)汞窗。三九已至,卻和暖如春赡译,著一層夾襖步出監(jiān)牢的瞬間仲吏,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工蝌焚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜘矢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓综看,卻偏偏與公主長(zhǎng)得像品腹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子红碑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • TIMx簡(jiǎn)介 可編程預(yù)分頻驅(qū)動(dòng) 16位 自動(dòng)裝載計(jì)數(shù)器 用于輸入:測(cè)試脈沖寬度輸出:產(chǎn)生輸出波形(輸出比較和PWM...
    吳松乾閱讀 1,468評(píng)論 0 2
  • 姓名:周崇杰 學(xué)號(hào):16040120059 專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 轉(zhuǎn)載自:http://blog.csd...
    CJbaby閱讀 1,056評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理舞吭,服務(wù)發(fā)現(xiàn),斷路器析珊,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 空氣濕漉漉 往事不經(jīng)意 搖搖晃晃 從睡夢(mèng)中驚醒 那些塵埃 從未迷散至空氣 沒(méi)有回饋 沒(méi)有歉意 我似那走丟的孩子 ………
    恰媽閱讀 240評(píng)論 6 3
  • 我開(kāi)始聽(tīng)一些老歌看些舊書(shū) 開(kāi)始收集一些被舊時(shí)光打磨的照片 開(kāi)始不像以往那樣愛(ài)向別人訴說(shuō) 開(kāi)始看清旁人的淡漠與無(wú)所謂...
    十不青年閱讀 609評(píng)論 1 6