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

[复制链接]
 楼主| 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
附上参考代码。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
IFX_Lingling 发表于 2024-2-27 09:27 | 显示全部楼层
这个点特别容易忽略呢~
laocuo1142 发表于 2024-2-27 10:18 | 显示全部楼层
的确,这个问题出的非常用心
OliviaSH 发表于 2024-2-28 18:28 | 显示全部楼层
这个没有空闲中断吗
 楼主| IFX-RaymondDUAN 发表于 2024-3-21 19:31 | 显示全部楼层
XMC这款产品没有空闲中断
LOVEEVER 发表于 2024-3-27 15:28 | 显示全部楼层
DMA传输完成后,UART的数据传输还在进行当中,这个得需要程序进行判断进行串口临时关闭
jf101 发表于 2024-3-28 18:09 | 显示全部楼层
DMA传输确实还是比较容易忽略过程的
星辰大海不退缩 发表于 2024-3-29 14:24 | 显示全部楼层
楼主这个问题很实用经典
b5z1giu 发表于 2024-4-2 10:05 | 显示全部楼层
其实弄个定时器,做定时监测这个数据是否发完了,也是可以的吧
t1ngus4 发表于 2024-4-2 11:12 | 显示全部楼层
感觉没有空闲中断的话,就用与其通信的设备进行判断是否发完了,或者收完了呗
w2nme1ai7 发表于 2024-4-2 12:16 | 显示全部楼层
其实有空闲中断的话,确实会容易一些,哈哈
q1d0mnx 发表于 2024-4-2 13:21 | 显示全部楼层
用定时器吧,一般定时器检测到多久没数据了,就人为的认为发完了呗
kaif2n9j 发表于 2024-4-2 14:26 | 显示全部楼层
DMA就往里扔数据就行吧,还需要管是否发完吗?
p0gon9y 发表于 2024-4-2 15:30 | 显示全部楼层
可以不用DMA也行,就用阻塞式呗,也应该不会很慢吧
l1uyn9b 发表于 2024-4-3 06:22 | 显示全部楼层
串口发不发完应该有个寄存器能检测到吧
w2nme1ai7 发表于 2024-4-3 08:28 | 显示全部楼层
这英飞凌的MCU还有不支持空闲中断的呐

评论

空闲中断是什么意思?在什么情况下使用这种中断呢?  发表于 2024-4-30 17:34
g0d5xs 发表于 2024-4-3 09:03 | 显示全部楼层
让对方给你个通讯结束指令呗,就可以了吧
liu96jp 发表于 2024-4-3 10:00 | 显示全部楼层
我觉得可以用协议的方式来弄,比如最后就发0D0A,检测到0D0A就证明完事儿了

Burnon_FAE_1 发表于 2024-4-9 09:53 | 显示全部楼层
没有空闲中断,要程序查询。这个问题确认容易忽略
小夏天的大西瓜 发表于 2024-4-22 21:43 | 显示全部楼层
XMC这款产品没有空闲中断,需要程序自动查询结果的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

18

帖子

0

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