打印
[技术问答]

用PDMA循环往UART TX搬运数据。。。。

[复制链接]
904|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有什么区别啊?

使用特权

评论回复
5
Alina艾| | 2022-10-24 17:03 | 只看该作者
不是很清楚啊,您能不能把你这部分的代码贴出来看看,分析一下

使用特权

评论回复
6
Carmen7| | 2022-10-24 19:12 | 只看该作者
你可以参考一下官方的PDMA的demo,这样你调试的时候还有个对比

使用特权

评论回复
7
Annie556| | 2022-10-26 07:22 | 只看该作者
问问他家FAE呗,看看有啥参考资料不

使用特权

评论回复
8
Belle1257| | 2022-10-26 10:01 | 只看该作者
我觉得你可以仿真跟一下,看看第一次和之后是哪块有变量上的不一样,比如计数或者那个标记位,对比一下看看

使用特权

评论回复
9
汽车电子| | 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的长度都可以

使用特权

评论回复
10
alxd| | 2022-10-26 12:42 | 只看该作者
这不好找了,最好是用官方的移植一下,能少一些错误

使用特权

评论回复
11
Charlene沙| | 2022-10-26 13:22 | 只看该作者
是不是你DMA里就1个字节的数据啊?

使用特权

评论回复
12
Emily999| | 2022-10-26 14:20 | 只看该作者
跟你多少时间触发一次DMA也有关系,最好是看看

使用特权

评论回复
13
AloneKaven| | 2022-11-2 22:12 | 只看该作者
是不是你串口设置的问题呢?

使用特权

评论回复
14
Stahan| | 2022-11-5 20:57 | 只看该作者
最好是用官方的移植一下

使用特权

评论回复
15
Henryko| | 2022-11-6 19:53 | 只看该作者
触发DMA时间也有关系

使用特权

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

本版积分规则

1339

主题

3899

帖子

0

粉丝