打印
[XMC™]

XMC4300 UART DMA模式下如何判断数据发送完成

[复制链接]
440|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
IFX-RaymondDUAN|  楼主 | 2024-2-26 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 IFX-RaymondDUAN 于 2024-3-12 13:54 编辑

问题背景:
客户在使用XMC4300的DMA模式进行UART数据传输时发现,在DMA传输完成后,UART的数据传输还在进行当中,希望能准确的判断UART的数据传输完成。


该问题的解决方法可以参考以下链接:
https://community.infineon.com/t5/%E7%9F%A5%E8%AF%86%E5%BA%93%E6%96%87%E7%AB%A0/XMC4300-UART-DMA%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%95%B0%E6%8D%AE%E5%8F%91%E9%80%81%E5%AE%8C%E6%88%90/ta-p/474984
附上参考代码。



XMC48_DMA_20230424.zip

3.92 MB

使用特权

评论回复
沙发
IFX_Lingling| | 2024-2-27 09:27 | 只看该作者
这个点特别容易忽略呢~

使用特权

评论回复
板凳
laocuo1142| | 2024-2-27 10:18 | 只看该作者
的确,这个问题出的非常用心

使用特权

评论回复
地板
OliviaSH| | 2024-2-28 18:28 | 只看该作者
这个没有空闲中断吗

使用特权

评论回复
5
IFX-RaymondDUAN|  楼主 | 2024-3-21 19:31 | 只看该作者
XMC这款产品没有空闲中断

使用特权

评论回复
6
LOVEEVER| | 2024-3-27 15:28 | 只看该作者
DMA传输完成后,UART的数据传输还在进行当中,这个得需要程序进行判断进行串口临时关闭

使用特权

评论回复
7
jf101| | 2024-3-28 18:09 | 只看该作者
DMA传输确实还是比较容易忽略过程的

使用特权

评论回复
8
星辰大海不退缩| | 2024-3-29 14:24 | 只看该作者
楼主这个问题很实用经典

使用特权

评论回复
9
b5z1giu| | 2024-4-2 10:05 | 只看该作者
其实弄个定时器,做定时监测这个数据是否发完了,也是可以的吧

使用特权

评论回复
10
t1ngus4| | 2024-4-2 11:12 | 只看该作者
感觉没有空闲中断的话,就用与其通信的设备进行判断是否发完了,或者收完了呗

使用特权

评论回复
11
w2nme1ai7| | 2024-4-2 12:16 | 只看该作者
其实有空闲中断的话,确实会容易一些,哈哈

使用特权

评论回复
12
q1d0mnx| | 2024-4-2 13:21 | 只看该作者
用定时器吧,一般定时器检测到多久没数据了,就人为的认为发完了呗

使用特权

评论回复
13
kaif2n9j| | 2024-4-2 14:26 | 只看该作者
DMA就往里扔数据就行吧,还需要管是否发完吗?

使用特权

评论回复
14
p0gon9y| | 2024-4-2 15:30 | 只看该作者
可以不用DMA也行,就用阻塞式呗,也应该不会很慢吧

使用特权

评论回复
15
l1uyn9b| | 2024-4-3 06:22 | 只看该作者
串口发不发完应该有个寄存器能检测到吧

使用特权

评论回复
16
w2nme1ai7| | 2024-4-3 08:28 | 只看该作者
这英飞凌的MCU还有不支持空闲中断的呐

使用特权

评论回复
17
g0d5xs| | 2024-4-3 09:03 | 只看该作者
让对方给你个通讯结束指令呗,就可以了吧

使用特权

评论回复
18
liu96jp| | 2024-4-3 10:00 | 只看该作者
我觉得可以用协议的方式来弄,比如最后就发0D0A,检测到0D0A就证明完事儿了

使用特权

评论回复
19
Burnon_FAE_1| | 2024-4-9 09:53 | 只看该作者
没有空闲中断,要程序查询。这个问题确认容易忽略

使用特权

评论回复
20
小夏天的大西瓜| | 2024-4-22 21:43 | 只看该作者
XMC这款产品没有空闲中断,需要程序自动查询结果的

使用特权

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

本版积分规则

6

主题

8

帖子

0

粉丝