[STM32U5] STM32U575 特殊功能寄存器错误

[复制链接]
478|13
内核558 发表于 2025-11-22 18:05 | 显示全部楼层 |阅读模式
在 STM32CubeIDE 提供的 STM32U575 特殊功能寄存器定义中,低功耗定时器 1的 DIER_output 寄存器存在错误 。 该寄存器中应为 CC1IE捕获比较 1 中断使能位的标识,实际却显示为 CC1IF捕获比较 1 中断标志位。
想请教:DIER_output 寄存器与 DIER_input 寄存器有何区别?为何这两个寄存器中的部分位名称会不一致?

公羊子丹 发表于 2025-11-23 07:28 | 显示全部楼层
我之前用 U5 系列时也遇到过寄存器名字对不上文档的情况,大多数都是 CubeIDE 的 SVD 文件写错了,实际芯片和参考手册才是准的,你最好直接对照 RM0456。
周半梅 发表于 2025-11-23 07:29 | 显示全部楼层
DIER_output 和 DIER_input 其实是同一个定时器针对不同模式拆出来的视图,输入捕获和输出比较本来就是两套逻辑,所以有些位标识不一样也算正常。
帛灿灿 发表于 2025-11-23 07:30 | 显示全部楼层
我怀疑你看到的 CC1IF 是 IDE 把状态寄存器 SR 里的标志名字误搬到了 DIER,应该算是 ST 官方包的小 bug,之前 L4、H7 也出现过类似错误。
童雨竹 发表于 2025-11-23 07:31 | 显示全部楼层
你可以试试用 ST 提供的最新 SVD 文件替换掉 IDE 自带的那个,有时候固件包更新了但 CubeIDE 没同步,就会看到这种名称错误。
万图 发表于 2025-11-23 07:32 | 显示全部楼层
区别的话其实挺简单,input 版本主要是捕获信号触发的相关中断,output 则是比较事件触发的逻辑,底层寄存器地址是同一个,只是 IDE 显示不同。
Wordsworth 发表于 2025-11-23 07:33 | 显示全部楼层
如果你担心写错寄存器,可以直接用 LL 或 HAL 的宏,例如 LL_LPTIM_EnableIT_CC1,这样完全不需要自己判断位名,稳定得多。
Bblythe 发表于 2025-11-23 07:34 | 显示全部楼层
我建议你在调试时直接把 DIER 的地址加到 watch 窗口里,观察实际硬件的位变化,别过度依赖 CubeIDE 的寄存器名称,它偶尔会误导人。
Pulitzer 发表于 2025-11-23 07:35 | 显示全部楼层
之前在 U585 上也看到过 ADC 寄存器名称不一致的问题,提交给 ST 后他们在后续固件包里修掉了,所以这个问题你也可以上 ST 社区反馈一下。
Uriah 发表于 2025-11-23 07:36 | 显示全部楼层
如果你用的是早期的 1.12 或 1.13 IDE,寄存器显示模块的 bug 比较多,你可以升级到新版,U5 的支持在 1.15 之后完善了不少。
Clyde011 发表于 2025-11-23 07:37 | 显示全部楼层
再说一句调侃的,U5 这代外设确实怪多,很多寄存器位看着像复制粘贴后忘了改,所以看到名字不一致别慌,实际功能一般是对的。
七毛钱 发表于 2025-11-27 16:01 | 显示全部楼层
在STM32U575的定时器配置中,DIER寄存器本身不存在独立的“DIER_output”和“DIER_input”子寄存器,其功能位统一集成在单个DIER寄存器中,用于统一控制定时器的中断和DMA请求使能。
classroom 发表于 2025-11-27 16:02 | 显示全部楼层
更新工具链
classroom 发表于 2025-11-27 16:02 | 显示全部楼层
检查定时器通道的GPIO引脚配置是否正确
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

68

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0