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; //定時器基準頻率8mhztiminitstruct.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; //搶占優先順序0nvic_initstructure.nvic_irqchannelsubpriority = 0; //響應優先順序1nvic_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; //定時器基準頻率8mhztiminitstruct.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定時器溢位模式設定
環境:
主機: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; //定時器基準頻率8mhztiminitstruct.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; //搶占優先順序0nvic_initstructure.nvic_irqchannelsubpriority = 0; //響應優先順序1nvic_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; //定時器基準頻率8mhztiminitstruct.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...