stm32定時器溢位模式設定
環境:
主機:win7
開發環境:mdk4.23
mcu:stm32f103cbt6
源**1:
說明:定時器採用tim2,時鐘源為內部8m晶振,向上溢位模式.此定時器用在延時函式,最小可以延時1us,故沒有採用中斷形式定時.
初始化**:
[cpp]view plain
copy
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); //開啟計數器
延時函式**:
[cpp]view plain
copy
//延時1us
//最大65536us
void
_delay_us(uint16_t t)
//延遲1ms
//最大65ms
void
_delay_ms(uint8_t t)
_delay_us(t * 1000);
}
源**2:
說明:定時器採用tim3,時鐘源為內部8m晶振,向上溢位模式.此定時器用在長時間計時,最小計時間隔為100us,故採用中斷形式定時.
初始化**:
[cpp]view plain
copy
//中斷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); //開啟計數器
中斷函式**:
[cpp]view plain
copy
//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,故沒有採用中斷形式定時.初始化 rcc apb1periphclockcm...
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...