硬汉嵌入式论坛

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

[STM32H7] DMA+定时器生成PWM

[复制链接]

3

主题

6

回帖

15

积分

新手上路

积分
15
发表于 2025-4-2 19:05:10 | 显示全部楼层 |阅读模式
硬汉哥 你好,我最近遇到一个奇怪的问题:我是用的是STM32H743IIT6芯片的定时器5+DMA产生可变占空比的PWM,使用cubmx生成的 数据长度都是半字 然后程序里面定义的数据也是uint16_t的 可是没有生成PWM出来 我跑仿真查看了TIM5的CCR4值(使用的通道4);我原泵想要设置成0x10;但现象是 DMA搬运完后 它这个CCR4寄存器 高16位设置成了 0x0010 低16位寄存器也设置成了 0x0010;但我想要的是0x000000010才对的; 后来我把传输改成uint32_之后 数据就是对的了,我很疑惑这个问题;请大佬们指导一下,万分感谢
回复

使用道具 举报

5

主题

162

回帖

177

积分

初级会员

积分
177
发表于 2025-4-2 23:46:01 | 显示全部楼层
发送的数据要跟定时器的位数有关,32位就发uint32 16发uint16
回复

使用道具 举报

3

主题

6

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-4-3 08:37:07 | 显示全部楼层
2859932063 发表于 2025-4-2 23:46
发送的数据要跟定时器的位数有关,32位就发uint32 16发uint16

但采用定时器4又可以这样使用,我看定时器4 ccr也是32位的呀 也分高和低嘛
回复

使用道具 举报

0

主题

26

回帖

26

积分

新手上路

积分
26
发表于 2025-4-3 09:33:59 | 显示全部楼层
虽然TIM2-TIM5的寄存器是在一起的,但其实只有TIM2和TIM5的CCR寄存器有高16位

微信截图_20250403093139.png
回复

使用道具 举报

0

主题

26

回帖

26

积分

新手上路

积分
26
发表于 2025-4-3 09:34:40 | 显示全部楼层
虽然TIM2-TIM5的寄存器是在一起的,但其实只有TIM2和TIM5的CCR寄存器有高16位 微信截图_20250403093139.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 18:07 , Processed in 0.043049 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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