GD32E230開發筆記-GD32E230定時器控制
阿新 • • 發佈:2021-02-14
GD32E230開發筆記-GD32E230定時器控制
1.硬體設計
GD32E230C8T6中定時器的資源還是比較豐富,這裡我們除錯TIMER5
2.軟體設計
定時器的配置
定時器函式的初始化
void TIMER5_init(uint16_t arr,uint16_t psc)
{
timer_parameter_struct timer_initpara;
rcu_periph_clock_enable(RCU_TIMER5); /* 使能TIMER5時鐘 */
/* TIMER5 初始化配置 */
timer_deinit(TIMER5);
timer_initpara.prescaler = psc; /* 時鐘預分頻係數 */
timer_initpara.period = arr; /* 自動重灌載值 */
timer_init(TIMER5,&timer_initpara);
nvic_irq_enable(TIMER5_IRQn, 3); /* TIMER2中斷設定,搶佔優先順序3,子優先順序3 */
timer_interrupt_enable (TIMER5,TIMER_INT_UP); /* 使能更新中斷 */
timer_enable(TIMER5);
}
定時器中斷函式,這裡主要完成定時器的動作。
void TIMER5_IRQHandler(void)
{
timer_flag_clear(TIMER5,TIMER_FLAG_UP); /* 定時器更新中斷的標識位需要手動清除 */
flag++;
if(flag%2==0){
gpio_bit_set(GPIOA,GPIO_PIN_7);
gpio_bit_set(GPIOA,GPIO_PIN_8);
}
else{
gpio_bit_reset (GPIOA,GPIO_PIN_7);
gpio_bit_reset(GPIOA,GPIO_PIN_8);
}
}
3.設計效果
4.程式原始碼
通過定時器控制LED的閃爍原始碼GD32E230C8T6定時器控制LED