1、设置cubeMX
这里使用STM32F103RCT6芯片,以定时器2为例,时钟源选择内部时钟
参数设置,预分频7200,定时器周期10000,则表示定时1秒钟
打开定时器2通用中断
其他设置不用修改。时钟页面配置如下
最后生成代码。
2、在工程文件tim.c中,添加定时器中断回调函数,做1秒时间到后的任务处理,这里以在串口屏显示计时为例:
/* USER CODE BEGIN 1 */
uint16_t countdown=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
// 这个回调函数 是共用的,因此需要先判断,是不是定时器2
if(htim->Instance == htim2.Instance)
{
countdown++;//计时加1,并在显示屏上显示秒数
SetTxData_toLCD(0x11,0x50, countdown/256,countdown%256);//写串口屏指令数组,变量地址0x1100,写入串口屏倒计时秒数
UserUart1Send( tempbuff,sizeof(tempbuff));//串口1发送指令存放的数组,控制数据变量0x1100处显示倒计时秒数
}
}