2024年最全STM32CubeMX 学习(5)输入捕获实验_stm32cubemx输入捕获(4)

五、定时器(输入捕获)参数配置

我将 TIM2 的通道 1 作为输入捕获测试通道,STM32CubeMX 会默认配置 PA0 作为输入捕获的 IO 口(PA0 有该复用功能,且不需要重映像,所以自动将 PA0 设为 TIM_CH1 的 GPIO),定时器的参数设定如下图所示(输入捕获的配置可以不用改,默认捕获上升沿):

在这里插入图片描述

分频系数为 72-1,意思就是 72 分频(0表示 1 分频,1 表示 2 分频,以此类推),TIM2 的时钟频率为 72 MHz(下图中,APB1 Timer clocks 的时钟频率为 72MHz,TIM2 挂载在 APB1 上)。将其进行 72 分频后,频率变成了 1MHz,即每秒计数 1000000 次。周期设置为 1000-1(这里要减一,应该是因为计数值最小为 0),代表着一个完整的计时周期为 1000 次计数,结合定时器计数频率,定时器一次计时溢出所需的时间为 1ms。【频率决定了输入捕获的捕获周期,计时值设为 1000 只是为了方便计算】

在这里插入图片描述

输入捕获需要开启定时器的中断,无论是计时溢出还是输入捕获都需要使用到中断。

在这里插入图片描述

六、生成 Keil 工程

设置 IDE 和 工程目录及名称:

在这里插入图片描述

将每种外设的代码存放到不同的 .c /.h 文件中,便于管理(不然都会被放到 main.c 中)。

在这里插入图片描述

下面是生成 Keil 工程中关于 TIM2(输入捕获)初始化的代码:

/\* TIM2 init function \*/
void MX\_TIM2\_Init(void)
{

  /\* USER CODE BEGIN TIM2\_Init 0 \*/

  /\* USER CODE END TIM2\_Init 0 \*/

  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  TIM_IC_InitTypeDef sConfigIC = {0};

  /\* USER CODE BEGIN TIM2\_Init 1 \*/

  /\* USER CODE END TIM2\_Init 1 \*/
  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 72 - 1;
  htim2.Init.CounterMode = TI
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值