搜索
bottom↓
回复: 5

USART 的 RXD TIMER OUT好烦

[复制链接]

出0入0汤圆

发表于 2016-4-29 16:17:09 | 显示全部楼层 |阅读模式
FIFO内没数据他不触发, FIFO内数据满触发RDA中断,那么问题来了,如果我发送刚好触发RDA中断字节的数据他触发什么?
RDA触发条件为接受到14个字节,然后我发送14个字节的数据,他触发了RDA,然后我使用DMA传输,一次性把14个字节全部拿走,这时TIMER OUT中断无法触发,我就没有一个判定是否接受完毕的依据了, 反之如果我传输20个字节,第一次触发RDA 然后数据传输完毕,第二次剩余6个字节触发TIMER OUT中断,于是我认定数据传输完毕,进行处理

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-4-29 16:17:42 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2016-4-29 20:30:53 | 显示全部楼层
最终我放弃用TIMER OUT这个中断标志了, 只用INT

出0入30汤圆

发表于 2016-4-29 22:19:24 | 显示全部楼层
FIFO 14字节触发
只读取13字节,留1个字节在FIFO中,在读取字符的同时FIFO仍然在持续接收数据。
这样如果接收到的数据总长度刚好为14字节的整数倍时,最后1字节会在字符超时中断中接收到.
这样处理,可以保证无论接收到多少数据,最后都会以串口自带的字符超时中断来判断数据接收结束

出0入0汤圆

 楼主| 发表于 2016-4-30 00:01:58 | 显示全部楼层
lovelywwei 发表于 2016-4-29 22:19
FIFO 14字节触发
只读取13字节,留1个字节在FIFO中,在读取字符的同时FIFO仍然在持续接收数据。
这样如果接 ...

感觉有问题哦,FIFO的RDA中断是接受14个字节时触发,并不是FIFo中有14个数据时触发,如果像你所说的当传输14*14个字节后  fifo依然会满,

出0入0汤圆

发表于 2016-4-30 00:10:41 | 显示全部楼层
4楼和我一样,我一直都是这样处理16550串口接收的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-16 18:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表