STM32F10xx參考手冊(cè)英文和中文版
百度網(wǎng)盤:https://pan.baidu.com/s/1Z2nB0WVJIxvm3VOI9MQiiw
提取碼:lxlx
STM32F103RCT6數(shù)據(jù)手冊(cè)
鏈接:https://pan.baidu.com/s/1tRchgf-5C1MN4W58vQ9zPg
提取碼:lxlx
定時(shí)器分類
STM32F103RCT6包括,高級(jí)控制定時(shí)器TIM1和TIM8,通用定時(shí)器TIM2-5,基本定時(shí)器TIM6和TIM7.
高級(jí)控制定時(shí)器TIM1,TIM8

TIM1和TIM8定時(shí)器的功能包括: ● 16位向上、向下、向上/下自動(dòng)裝載計(jì)數(shù)器 ● 16位可編程(可以實(shí)時(shí)修改)預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為1~65535之間的任意 數(shù)值 ● 多達(dá)4個(gè)獨(dú)立通道: ─ 輸入捕獲 ─ 輸出比較 ─ PWM生成(邊緣或中間對(duì)齊模式) ─ 單脈沖模式輸出 ● 死區(qū)時(shí)間可編程的互補(bǔ)輸出 ● 使用外部信號(hào)控制定時(shí)器和定時(shí)器互聯(lián)的同步電路 ● 允許在指定數(shù)目的計(jì)數(shù)器周期之后更新定時(shí)器寄存器的重復(fù)計(jì)數(shù)器 ● 剎車輸入信號(hào)可以將定時(shí)器輸出信號(hào)置于復(fù)位狀態(tài)或者一個(gè)已知狀態(tài) ● 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA: ─ 更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā)) ─ 觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) ─ 輸入捕獲 ─ 輸出比較 ─ 剎車信號(hào)輸入 ● 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路 ● 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理
通用定時(shí)器TIM2-5

通用TIMx (TIM2、TIM3、TIM4和TIM5)定時(shí)器功能包括: ● 16位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器 ● 16位可編程(可以實(shí)時(shí)修改)預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為1~65536之間的任意 數(shù)值 ● 4個(gè)獨(dú)立通道: ─ 輸入捕獲 ─ 輸出比較 ─ PWM生成(邊緣或中間對(duì)齊模式) ─ 單脈沖模式輸出 ● 使用外部信號(hào)控制定時(shí)器和定時(shí)器互連的同步電路 ● 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA: ─ 更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā)) ─ 觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) ─ 輸入捕獲 ─ 輸出比較 ● 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路 ● 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理
基本定時(shí)器TIM6和TIM7

TIM6和TIM7定時(shí)器的主要功能包括: ● 16位自動(dòng)重裝載累加計(jì)數(shù)器 ● 16位可編程(可實(shí)時(shí)修改)預(yù)分頻器,用于對(duì)輸入的時(shí)鐘按系數(shù)為1~65536之間的任意數(shù)值 分頻 ● 觸發(fā)DAC的同步電路 ● 在更新事件(計(jì)數(shù)器溢出)時(shí)產(chǎn)生中斷/DMA請(qǐng)求
通用定時(shí)器函數(shù)
初始化
TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
//初始化定時(shí)器

TIM_Prescaler=psc;//時(shí)鐘預(yù)分頻數(shù)
TIM_CounterMode;//選擇向上計(jì)數(shù)或向下計(jì)數(shù)
TIM_Period=arr;//自動(dòng)重裝值
TIM_ClockDivision=CKD;//時(shí)鐘分頻
TIM_RepetitionCounter;//參數(shù)設(shè)置為0時(shí),時(shí)間周期不翻倍
//參數(shù)設(shè)置為1時(shí),時(shí)間周期翻1倍
//參數(shù)設(shè)置為2時(shí),時(shí)間周期翻2倍。
使能
TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
//TIMx ——TIM2-5; FunctionalState NewState——ENABLE/DISABLE
中斷標(biāo)志位
TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
//TIMx ——TIM2-5; TIM_IT——TIM_IT_Update

清除中斷標(biāo)志位
TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT); //清除中斷標(biāo)志位
//TIMx ——TIM2-5; TIM_IT——TIM_IT_Update
代碼實(shí)現(xiàn)
void TIM2_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); ///使能TIM2時(shí)鐘
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計(jì)數(shù)
TIM_TimeBaseInitStructure.TIM_Period = arr ;//arr:自動(dòng)重裝值。
TIM_TimeBaseInitStructure.TIM_Prescaler = psc ;//時(shí)鐘預(yù)分頻數(shù)
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);//初始化TIM2
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //允許定時(shí)器2更新中斷
NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn; //定時(shí)器2中斷
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1//搶占優(yōu)先級(jí)1
NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; //子優(yōu)先級(jí)2
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
TIM_Cmd(TIM2,ENABLE); //使能定時(shí)器2
//定時(shí)器2中斷服務(wù)函數(shù)
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET) //溢出中斷
{
}文章來源地址http://www.zghlxwxcb.cn/news/detail-473961.html
TIM_ClearITPendingBit(TIM2,TIM_IT_Update); //清除中斷標(biāo)志位文章來源:http://www.zghlxwxcb.cn/news/detail-473961.html
}
到了這里,關(guān)于STM32F103RCT6——定時(shí)器簡(jiǎn)單用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!