打印
[STM32F1]

mcu中的DMA功能

[复制链接]
222|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2023-8-15 09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题点1,

定时器对应DMA的通道没选对,DMA对应定时器的4个通道外,还有一个定时器更新的通道,TIM_DMACmd(TIM2, TIM_DMA_CC2    , ENABLE);使能的时候一定要选对,要使用UP通道就要打开相应的通道才行,之前我就是因为这个出了问题,导致数据没有传输出去。

问题点2

数据能传输出去了,但是传输的数据确实乱码的,导致灯带不规则点亮,找了很久原因,一直以为是pwm配置出了问题,然后用逻辑分析仪抓了一下波形,pwm频率周期设置是没问题,但是数据就是乱的,排除只能是DMA配置出了问题,最后找到原因了, 是DMA的字宽和缓存数组的类型大小不一样,我的数组是char,DMA配置的是两个字节 DMA_InitStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;

DMA_InitStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;

最后把缓存数组的类型改成16位的就可以了,问题解决了。

SPI+DMA的方式和配置也是大同小异,比pwm配置还简单些,毕竟只是使用发送数据就行了,主要还是配置DMA的时候注意一点。
————————————————
版权声明:本文为CSDN博主「芯芯点灯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fqm0_0/article/details/131793716

使用特权

评论回复
沙发
Bowclad| | 2023-8-15 23:50 | 只看该作者
字节宽度对不齐有时候很难查找啊

使用特权

评论回复
板凳
AloneKaven| | 2023-8-16 23:43 | 只看该作者
Bowclad 发表于 2023-8-15 23:50
字节宽度对不齐有时候很难查找啊

对,有次一直出错,调试一个变量一个变量检查的

使用特权

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

本版积分规则

1923

主题

15596

帖子

11

粉丝