STM32定時器溢位模式計時設定

2021-08-26 22:05:04 字數 2699 閱讀 3441

stm32定時器溢位模式設定

環境:

主機:win7

開發環境:mdk4.23

mcu:stm32f103cbt6

源**1:

說明:定時器採用tim2,時鐘源為內部8m晶振,向上溢位模式.此定時器用在延時函式,最小可以延時1us,故沒有採用中斷形式定時.

初始化**:

rcc_apb1periphclockcmd(rcc_apb1periph_tim2,enable);

//重新將timer設定為預設值

tim_deinit(tim2);

//採用內部時鐘給tim2提供時鐘源

tim_internalclockconfig(tim2);

timinitstruct.tim_clockdivision = tim_ckd_div2; //定時器基準頻率8mhz

timinitstruct.tim_prescaler = 8 - 1; //計數頻率為1us跳轉1次

timinitstruct.tim_countermode = tim_countermode_up; //向上計數

timinitstruct.tim_repetitioncounter = 0;

timinitstruct.tim_period = 0; //這個值實際上就是timx->arr,延時開始時重新設定即可

tim_timebaseinit(tim2, &timinitstruct);

tim_itconfig(tim2, tim_it_update, enable); //計數溢位時觸發中斷

tim_cmd(tim2, enable); //開啟計數器

延時函式**:

//延時1us

//最大65536us

void _delay_us(uint16_t t)

//延遲1ms

//最大65ms

void _delay_ms(uint8_t t)

_delay_us(t * 1000);

}

源**2:

說明:定時器採用tim3,時鐘源為內部8m晶振,向上溢位模式.此定時器用在長時間計時,最小計時間隔為100us,故採用中斷形式定時.

初始化**:

//中斷nvic設定:允許中斷,設定優先順序

nvic_prioritygroupconfig(nvic_prioritygroup_1);

nvic_initstructure.nvic_irqchannel = tim3_irqn; //更新事件

nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; //搶占優先順序0

nvic_initstructure.nvic_irqchannelsubpriority = 0; //響應優先順序1

nvic_initstructure.nvic_irqchannelcmd = enable; //允許中斷

nvic_init(&nvic_initstructure); //寫入設定

rcc_apb1periphclockcmd(rcc_apb1periph_tim3,enable);

//重新將timer設定為預設值

tim_deinit(tim3);

//採用內部時鐘給tim3提供時鐘源

tim_internalclockconfig(tim3);

timinitstruct.tim_clockdivision = tim_ckd_div2; //定時器基準頻率8mhz

timinitstruct.tim_prescaler = 800 - 1; //計數頻率為100us跳轉1次

timinitstruct.tim_countermode = tim_countermode_up; //向上計數

timinitstruct.tim_repetitioncounter = 0;

timinitstruct.tim_period = 0; //這個值實際上就是timx->arr,延時開始時重新設定即可

tim_timebaseinit(tim3, &timinitstruct);

//清溢位中斷標誌

tim_clearflag(tim3, tim_flag_update);

//禁止arr預裝載緩衝器

tim_arrpreloadconfig(tim3, disable);

//開啟中斷

tim_itconfig(tim3, tim_it_update, enable);

tim_cmd(tim3, enable); //開啟計數器

中斷函式**:

//tim3中斷

void tim3_irqhandler(void)

}

STM32定時器溢位模式計時設定

stm32定時器溢位模式設定 環境 主機 win7 開發環境 mdk4.23 mcu stm32f103cbt6 源 1 說明 定時器採用tim2,時鐘源為內部8m晶振,向上溢位模式.此定時器用在延時函式,最小可以延時1us,故沒有採用中斷形式定時.初始化 rcc apb1periphclockcm...

STM32定時器溢位模式設定

stm32定時器溢位模式設定 環境 主機 win7 開發環境 mdk4.23 mcu stm32f103cbt6 源 1 說明 定時器採用tim2,時鐘源為內部8m晶振,向上溢位模式.此定時器用在延時函式,最小可以延時1us,故沒有採用中斷形式定時.初始化 cpp view plain copy r...

stm32關定時器 STM32定時器TIM3程式

include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...