打印
[STM32F4]

TIMX_RCR重载计数初值设置出错

[复制链接]
388|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TI, mx, rc, ui, IO
在用(TIMX_RCR)的时候遇到一些问题。当启用OPM设置,在重载计数初值设置中输入一个16位的值时,就出问题了。
我认为将LL_TIM_InitTypeDef结构题中声明的uint8_t RepetitionCounter定义为uint16_t才是是正确的。但是重新定义后回引其更多的错误。

使用特权

评论回复
沙发
麻花油条| | 2025-3-12 11:36 | 只看该作者
检查RCR值的范围,在设置RCR值时,输入的值不超过255。

使用特权

评论回复
板凳
flycamelaaa| | 2025-3-12 23:00 | 只看该作者
如果发现固件库存在问题,更新到最新版本。

使用特权

评论回复
地板
香水城| | 2025-3-13 09:13 | 只看该作者

你将将LL_TIM_InitTypeDef结构题中声明的uint8_t RepetitionCounter定义为uint16_t也没有用,因为这个寄存器的有效位才8位,高8位是无效的保留位。 赋值超过255就肯定出问题。

1717467d230ee50bf3.png (42.72 KB )

1717467d230ee50bf3.png

使用特权

评论回复
5
laocuo1142| | 2025-3-13 11:00 | 只看该作者
固件库版本与GD32F105RB的硬件不兼容。

使用特权

评论回复
6
暖了夏天蓝了海| | 2025-4-11 01:09 | 只看该作者
在使用 STM32 定时器的重复计数器(TIMx_RCR) 时,如果遇到 启用单脉冲模式(OPM) 并设置16位重载值的问题,确实可能与LL_TIM_InitTypeDef结构体中 RepetitionCounter 的数据类型定义有关

使用特权

评论回复
7
淡漠安然| | 2025-4-11 02:21 | 只看该作者
在标准库(如 HAL/LL)中,LL_TIM_InitTypeDef RepetitionCounter 通常定义为 uint8_t8 位),但某些 STM32 定时器(如高级定时器 TIM1/TIM8)的 TIMx_RCR 寄存器实际上是 16 位(如 STM32G4 系列)

使用特权

评论回复
8
江河千里| | 2025-4-11 03:11 | 只看该作者
当试图写入超过 2550xFF)的值时,由于数据类型截断,实际写入的值会错误

使用特权

评论回复
9
一秒落纱| | 2025-4-11 04:14 | 只看该作者
OPM 模式(TIM_CR1.OPM=1)下,定时器在 发生 UEV 事件后自动停止

使用特权

评论回复
10
光辉梦境| | 2025-4-11 05:28 | 只看该作者
RCR 配置错误(如写入不完整的高 8 位),可能导致计数异常或无法触发更新事件

使用特权

评论回复
11
冰春彩落下| | 2025-4-11 06:24 | 只看该作者
如果必须使用 LL 库,可临时修改 stm32g4xx_ll_tim.h 中的定义(需备份原文件)

使用特权

评论回复
12
夜阑风雨| | 2025-4-11 07:33 | 只看该作者
修改库文件可能导致其他依赖此结构体的函数出错(如 LL_TIM_Init())。需重新编译整个工程,且升级库时需重复修改

使用特权

评论回复
13
三生万物| | 2025-4-11 08:35 | 只看该作者
需确认 LL_TIM_SetRepetitionCounter() 是否支持 16 位操作(部分库可能仅处理低 8 位)

使用特权

评论回复
14
远山寻你| | 2025-4-11 09:11 | 只看该作者
在调试模式下,查看 TIM1->RCR 的值是否与预期一致。若值为 0x34(仅低 8 位生效),则确认库函数存在截断

使用特权

评论回复
15
别乱了阵脚| | 2025-4-11 10:42 | 只看该作者
优先直接操作 TIMx_RCR 寄存器,避免库函数限制。慎改库文件,除非能确保兼容性。验证 OPM RCR 的协同工作:通过调试器检查寄存器值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

9

帖子

0

粉丝