STM32F429 Cubemx配置Timer实现5ms一个中断

目的:在STM32F429实现一个5ms一个interrupt的中断,并且重复触发

我们选用TIM2,可以看到TIM2是在APB1总线上,也可以看到APB1总线的 Clock是90M

image.pngimage.png

整个Cube的配置为:

image.png

image.png

其中我要来说下几个参数:

预分频器值(Prescaler value):此部分就是把clock source分频到一个你想要的频率,计数器时钟频率CK_CNT 等于fCK_PSC/ (PSC[15:0] + 1)

比如我们APB1是90M,我们此部分设置90-1,得到的最终频率是90M/((90-1)+1) = 1MHz

定时器周期(Period):我们设置预分频后得到1MHz,此部分想得到5ms,就是1M Hz/5000 = 200Hz,也就是5ms产生一次

需要注意的点是:

 

需要注意的一点是:默认timer中断不会启动,需要主动调用HAL_TIM_Base_Start_IT(&htim2); 函数

效果如下:

image.png

要在STM32实现一个5ms定时器中断,你可以使用STM32定时器外设来完成。 首先,选择一个可用的定时器(例如TIM2、TIM3等),并将其配置定时器模式。你可以使用STM32CubeMX工具来进行配置,或者手动编写代码。 接下来,根据你的系统时钟频率和所需的时间间隔计算出定时器的预分频和自动重加载值。 例如,如果你的系统时钟频率为72MHz,并且你想要一个5ms定时器中断,那么你可以按照以下步骤进行配置: 1. 设置预分频值:根据定时器的时钟频率和所需的时间间隔计算出预分频值。 预分频值 = (定时器时钟频率 / 所需中断频率) - 1 在这种情况下,预分频值 = (72MHz / 200Hz) - 1 = 359999。 2. 设置自动重加载值:根据所需的时间间隔计算出自动重加载值。 自动重加载值 = (所需中断频率 / 定时器时钟频率) - 1 在这种情况下,自动重加载值 = (200Hz / 72MHz) - 1 = 3599。 3. 配置定时器中断优先级:在NVIC中设置定时器中断的优先级。 4. 启用定时器中断:在定时器的控制寄存器中,使能更新中断(UIE)位。 5. 启动定时器:在定时器的控制寄存器中,使能定时器(CEN)位。 这样,当定时器计数器达到自动重加载值时,定时器将会触发一个中断,并执行中断服务程序(ISR)。 在ISR中,你可以执行任何你需要的操作,例如更新某些变量、发送数据等。 请注意,以上步骤是一个简单的示例配置,具体的配置可能因使用的STM32系列和具体需求而有所不同。你可以参考所使用的芯片的参考手册和相关的示例代码来完成更准确的配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wireless_Link

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值