STM32CubeMX学习笔记4——定时器中断

我用的是STM32F407ZGT6,STM32F4系列一共有15个定时器:

  • 高级定时器(TIM1、TIM8)
  • 通用定时器(TIM2、TIM3、TIM4、TIM5、TIM9~TIM14)
  • 基本定时器(TIM6、TIM7)

     定时器详解

1.创建工程、选择芯片、RCC和SYS的配置都请参照学习笔记1和学习笔记2

  配置TIM1

 预分频值选择

 定时器更新中断的频率=时钟频率/(预分频+1)/(自动重装载值+1)

                                     =84000000/42000/2000=1(Hz)

2.生成代码,在usart.c中加入如下代码重定向printf:

#include "stdio.h"

 //这个变量是其他.c文件定义的
 extern UART_HandleTypeDef huart1;
 uint8_t ch;
 uint8_t ch_r;
 //重写这个函数,重定向printf函数到串口,意思就是说printf直接输出到串口,其默认输出到控制台的
 /*fputc*/
 int fputc(int c, FILE * f)
 {
     ch=c;
     HAL_UART_Transmit(&huart1,&ch,1,1000);//发送串口
     return c;
 }
 
 
 //重定向scanf函数到串口 意思就是说接受串口发过来的数据,其默认是接受控制台的数据
 /*fgetc*/
 int fgetc(FILE * F)    
 {
     HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收
     return ch_r;
 }

 3.在main.c中添加代码:

 

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
     if(htim->Instance == TIM1)
     {
        printf("TIM test!");
     }

}

 4.烧入程序,(魔术棒调试请看笔记2)结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值