你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在STM32F407上使用DMA给TIM2的CCR4写值,输出固定个数PWM波个数时,遇见了CCR4的高位与低位同时被写入相同的值

[复制链接]
kinni 提问时间:2023-12-8 16:28 / 未解决

在STM32F407上使用DMA给TIM2的CCR4写值,输出固定个数PWM波个数时,遇见了CCR4的高位与低位同时被写入相同的值,如图所示

image.png

在DEBUG时可以看见CCR4的高16位与低16位同时被赋值了,但是在内存中,我只存了0x64,为什么会出现高位也出现0x64,导致没有波形产生。

收藏 评论3 发布时间:2023-12-8 16:28

举报

3个回答
xmshao 回答时间:2023-12-8 16:40:26
你在做DMA配置时,源端和目的端都按字宽度来做,应该就可以解决问题了。
kinni 回答时间:2023-12-8 16:53:00

xmshao 发表于 2023-12-8 16:40
你在做DMA配置时,源端和目的端都按字宽度来做,应该就可以解决问题了。

image.png

大佬,源端与目标端字节长度在配置时一样的,麻烦您帮我看一下这配置有没有问题吗

image.png
kinni 回答时间:2023-12-9 10:32:17

解决了,当时还特意把定时器换成TIM3的发现都可以,而用TIM2的不行,后面查手册发现TIM2是32的而TIM3是16位的,我在源端数组配置的是16位的数组,所以在DMA搬运后出现异常,多谢大佬提醒我数据长度有问题。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版