[技术问答] 用PDMA循环往UART TX搬运数据。。。。

[复制链接]
1157|14
 楼主| cr315 发表于 2022-10-13 11:00 | 显示全部楼层 |阅读模式
为什么用PDMA循环往UART TX搬运数据,除了第一次,每次只能发出去第一个字节?
B1lanche 发表于 2022-10-24 12:19 | 显示全部楼层
DMA搬运的时候不是按一个字节一个字节的搬运的吧?
Carina卡 发表于 2022-10-24 13:30 | 显示全部楼层
是不是你串口设置的问题呢,设置成了1个字节就触发发送了
Estelle1999 发表于 2022-10-24 15:46 | 显示全部楼层
没用过新唐的PDMA,这个PDMA和正常的DMA有什么区别啊?
Alina艾 发表于 2022-10-24 17:03 | 显示全部楼层
不是很清楚啊,您能不能把你这部分的代码贴出来看看,分析一下
Carmen7 发表于 2022-10-24 19:12 | 显示全部楼层
你可以参考一下官方的PDMA的demo,这样你调试的时候还有个对比
Annie556 发表于 2022-10-26 07:22 | 显示全部楼层
问问他家FAE呗,看看有啥参考资料不
Belle1257 发表于 2022-10-26 10:01 | 显示全部楼层
我觉得你可以仿真跟一下,看看第一次和之后是哪块有变量上的不一样,比如计数或者那个标记位,对比一下看看
汽车电子 发表于 2022-10-26 10:20 | 显示全部楼层
PDMA_SetTransferCnt(PDMA,eDMA_CH_FOR_UART0_TXD, PDMA_WIDTH_8, SendLen);            
                PDMA_SetTransferAddr(PDMA,eDMA_CH_FOR_UART0_TXD, ((uint32_t) (&Txd.Buffer[0])), PDMA_SAR_INC, UART0_BASE, PDMA_DAR_FIX);                        
                PDMA_SetBurstType(PDMA,eDMA_CH_FOR_UART0_TXD, PDMA_REQ_SINGLE, 0);
                PDMA_SetTransferMode(PDMA,eDMA_CH_FOR_UART0_TXD, PDMA_UART0_TX, 0, 0);

UART的DMA发送,这四句代码就可以了,一次可以发送几KB的长度都可以 6081663589990a93d6.png
alxd 发表于 2022-10-26 12:42 | 显示全部楼层
这不好找了,最好是用官方的移植一下,能少一些错误
Charlene沙 发表于 2022-10-26 13:22 | 显示全部楼层
是不是你DMA里就1个字节的数据啊?
Emily999 发表于 2022-10-26 14:20 | 显示全部楼层
跟你多少时间触发一次DMA也有关系,最好是看看
AloneKaven 发表于 2022-11-2 22:12 | 显示全部楼层
是不是你串口设置的问题呢?
Stahan 发表于 2022-11-5 20:57 | 显示全部楼层
最好是用官方的移植一下
Henryko 发表于 2022-11-6 19:53 | 显示全部楼层
触发DMA时间也有关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1466

主题

4964

帖子

0

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