STM32CubeMX开发之路—5定时器中断TIM

STM32CubeMX开发之路—5定时器中断TIM


运行环境

  • Windows10
  • STM32CubeMX___Version 5.0.0
  • Keil5(MDK5)___Version 5.15

简介

本例程主要讲解如何使用定时器实现一个定时器中断,每秒打印一串数据


STM32CubeMx基本配置

基础配置过程请参考 STM32CubeMx(Keil5)开发之路—配置第一个项目


为了方便调试,重定向printf,进行usart设置
1——点击USART1进行设置
2——模式选择Asynchronous异步传输
3——可以看到右边自动出现了Tx和Rx
4——可以自行设置波特率,停止位,校验位等参数


1——点击Clock Configuration进行设置
2——注意这几个地方的时钟(后面进行分频设置的时候需要)

STM32CubeMX开发之路—5定时器中断TIM_第1张图片

点击TIM1进行设置
1——时钟源Clock Source选择Intemal Clock
2——预分频选择36000-1也就是35999(注意16位最大只能表示65535)
3——自动重装载值设置为2000-1也就是1999
讲解:定时器更新中断的频率=时钟频率/(预分频+1)/(自动重装载值+1)
即 :72000000/36000/2000=1(HZ),也就是每秒进一次中断

STM32CubeMX开发之路—5定时器中断TIM_第2张图片

在NVIC Setting里面勾选TIM1 update interrupt

STM32CubeMX开发之路—5定时器中断TIM_第3张图片

代码修改


1——选择main.c文件
2——在USER CODE中添加如下代码,重定向printf

int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);
    return ch;
}
STM32CubeMX开发之路—5定时器中断TIM_第4张图片

在主函数中添加如下代码启动定时器

STM32CubeMX开发之路—5定时器中断TIM_第5张图片

重写中断函数,打印"123456",即每秒打印一次

STM32CubeMX开发之路—5定时器中断TIM_第6张图片

烧录代码后打开出口调试助手,正确的话会看到如下输出

STM32CubeMX开发之路—5定时器中断TIM_第7张图片

你可能感兴趣的:(STM32CubeMX开发之路)