[STM32U5] STM32U575的DMA+PWM输出,求指教

[复制链接]
1040|15
 楼主| elephant00 发表于 2023-9-25 09:42 | 显示全部楼层 |阅读模式
这是我的CubeMX配置。调用的是HAL_TIM_PWM_Start_DMA(&htim4,TIM_CHANNEL_1,(uint32_t )pulse,(176));库函数,// DMA 传输完成回调函数 void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef htim) { // __HAL_TIM_SET_COMPARE(&htim4,TIM_CHANNEL_1,0); HAL_TIM_PWM_Stop_DMA(&htim4,TIM_CHANNEL_1); } //DMA 需要传输的数据 uint16_t pulse[176] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 59,59,59,59,59,59,59,59, 29,29,29,29,29,29,29,29, 59,59,59,59,59,59,59,59,
29,29,29,29,29,29,29,29, 59,59,59,59,59,59,59,59, 29,29,29,29,29,29,29,29,
29,29,29,29,29,29,29,29, 29,29,29,29,29,29,29,29, 59,59,59,59,59,59,59,59,
29,29,29,29,29,29,29,29, 29,29,29,29,29,29,29,29, 29,29,29,29,29,29,29,29,};
把HAL_TIM_PWM_Start_DMA()函数放在while(1)之前,示波器上看不到波形,哪位大佬可以帮忙看看

香水城 发表于 2023-9-26 21:34 | 显示全部楼层
问题应该出在那个HAL_TIM_PWM_Start_DMA()函数的使用,那个Length变量要换算成 源数据个数乘以 以字节为单位的数据宽度。

比方你现在源数据为16位,一轮传输数据个数为176, 则这里的length就是 176*2! STM32U5的库函数在这里跟别的不太一样。
香水城 发表于 2023-9-28 08:29 | 显示全部楼层
Henryko 发表于 2023-9-29 19:33 | 显示全部楼层
这个575是什么内核的啊?
Stahan 发表于 2023-9-30 12:22 | 显示全部楼层
Henryko 发表于 2023-9-29 19:33
这个575是什么内核的啊?

M33
一只眠羊 发表于 2023-10-14 22:04 | 显示全部楼层
话说,这个没有官方的例程吗?可以看看的
月亮一键变蓝 发表于 2023-10-15 02:00 | 显示全部楼层
就是你定义的数据,没有通过DMA采集到?
将爱藏于深海 发表于 2023-10-15 05:00 | 显示全部楼层
你复位一下呢?看看能不能收到波形
故意相遇 发表于 2023-10-15 07:00 | 显示全部楼层
你仿真一下看看,数据为啥没传出来呗
温室雏菊 发表于 2023-10-15 09:00 | 显示全部楼层
DMA方面你配置OK了不?
西洲 发表于 2023-10-15 11:00 | 显示全部楼层
现在是啥情况啊?是DMA不执行啊?还是?
白马过平川 发表于 2023-10-15 13:00 | 显示全部楼层
楼主可以这样,首先使用HAL_TIM_PWM_Init()函数初始化定时器,并使用HAL_TIM_PWM_ConfigChannel()函数配置PWM通道。然后使用HAL_DMA_Init()函数初始化DMA,并使用HAL_DMA_Start()函数启动DMA传输。最后使用HAL_TIM_PWM_Start_DMA()函数启动PWM输出的DMA传输。
在曼谷的春 发表于 2023-10-15 16:00 | 显示全部楼层
是不是DMA需要长度相等啊?与PWM输出的数据长度
我吃小朋友 发表于 2023-10-15 18:00 | 显示全部楼层
DMA传输的数据缓冲区和PWM输出的数据缓冲区是相同的才行
失物招領 发表于 2023-10-15 20:00 | 显示全部楼层
执行是正常的不?现在就是数据收不到而已是吧
Mowergy 发表于 2023-10-16 11:20 | 显示全部楼层
DMA传输的数据缓冲区和PWM输出的数据缓冲区要相同
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1031

主题

3946

帖子

7

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