硬汉嵌入式论坛

 找回密码
 立即注册
查看: 626|回复: 2
收起左侧

[STM32CubeMX] 一个CubeMX配置定时器中断的小疑问

[复制链接]

26

主题

42

回帖

120

积分

初级会员

积分
120
发表于 2024-6-12 23:59:01 | 显示全部楼层 |阅读模式
用的是6.11版本的STM32CubeMX, 配置STM32H743的TIM7定时器,需要得到一个1ms的中断作为计时使用。


按照以前标准库计算方式,1ms中断的计算流程如下,

1,先计算1ms中断的频率,STM32H743用的是v版本,主频480M,定时器外设总线频率是240M,所以f=240M/(预分频+1)/(周期+1)=1000HZ
如下图,根据公式计算得到预分频是23999,周期是9,按照上述公式计算得到频率为1000HZ
121.jpg

2,根据中断频率得到周期为 T=1/f= 1/1000HZ=1ms


但是我在网上查询后,发现有两种情况,一种是按照上图的配置减1后填入数值,另一种CubeMX的配置是直接设置预分频是24000 ,周期是10, 并没有用上面的公式减1,如下。现在搞不清到底应该是哪种?
111.jpg
因为CubeMX的版本一直在更新,不知道以前的版本和现在的版本是不是会有这种配置上的差异?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-6-13 10:03:58 | 显示全部楼层
要处理加减1的问题。

因为HAL的底层是直接参数赋值的

  /* Set the Autoreload value */
  TIMx->ARR = (uint32_t)Structure->Period ;

  /* Set the Prescaler value */
  TIMx->PSC = (uint32_t)Structure->Prescaler;
回复

使用道具 举报

26

主题

42

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2024-6-13 17:40:00 | 显示全部楼层
eric2013 发表于 2024-6-13 10:03
要处理加减1的问题。

因为HAL的底层是直接参数赋值的

明白了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-29 06:05 , Processed in 0.568256 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表