FM33LG0包含1个16位基本定时器。 基本定时器包含一个16bit自动重载计数器及一个可编程预分频器。 基本定时器主要用来产生系统时基,也可以产生触发事件来驱动ADC采样 测试代码如下。 void BSTIM_Init(uint16_t pres,uint16_t reld,uint32_t priority) { FL_BSTIM16_InitTypeDef timInit; timInit.prescaler = pres - 1; // 分频系数8000 timInit.autoReload = reld - 1; // 自动重装载值1000 timInit.autoReloadState = FL_ENABLE; // 预装载preload使能 timInit.clockSource = FL_CMU_BSTIM16_CLK_SOURCE_APBCLK; FL_BSTIM16_Init(BSTIM16, &timInit); /---------------- 中断配置 ----------------/ /* 使能并配置NVIC / NVIC_DisableIRQ(BSTIM_IRQn); NVIC_SetPriority(BSTIM_IRQn, priority); //设置中断优先级 NVIC_EnableIRQ(BSTIM_IRQn); /---------------------------------------------/ FL_BSTIM16_ClearFlag_Update(BSTIM16);/ 清除标志 / FL_BSTIM16_EnableIT_Update(BSTIM16);/ 中断使能 / / 使能 / FL_BSTIM16_Enable(BSTIM16); // 使能定时器 } //LPTIM16中断服务程序 void BSTIM_IRQHandler(void) { //定时器溢出时翻转LED0 if( FL_BSTIM16_IsActiveFlag_Update(BSTIM16)) { FL_BSTIM16_ClearFlag_Update(BSTIM16);/ 清除标志 */ LED0_TOG(); } }
|