搜索
bottom↓
回复: 3

C#串口如何检测单片机一帧数据,设置只有满缓冲区中断,

[复制链接]

出0入0汤圆

发表于 2015-7-18 23:12:20 | 显示全部楼层 |阅读模式
C#缓冲区满可以发生事件,但是一帧数据往往是不定长的。
我这边缓冲区设置为1,结合定时器纯粹当单片机处理串口方式处理一帧数据
貌似可以工作的很好,但是这样明显效率低下,我想有没有其他方式C#能检测一帧数据的?  

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-7-18 23:19:08 | 显示全部楼层
实时性要求不是特别高的话,我采用的是定时等待,收到数据就解析。实际没有发现出什么问题,当然要根据你的项目来考量

出20入186汤圆

发表于 2015-7-19 08:44:16 | 显示全部楼层
放心吧,没事的,效率不低,程序不会运行很慢的,c#有一个功能,有ReadLine函数,可以读取一行,一行的分隔符可以自己设定的,你单片机发送的数据每一段之间有分隔符吧?

出0入0汤圆

发表于 2015-7-19 09:30:30 | 显示全部楼层
本帖最后由 gwnpeter 于 2015-7-19 09:32 编辑

ReadLine可以,不过需要按照字符串的形式发送,不过我经常都是按照字符串来处理的,收到的命令简单明了,无需解释。就是串口的使用效率低了一点。

另外将缓冲区改大一点,使用多线程进行串口读取,串口设置合适的readtimeout,也可以解决部分场合的问题

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

本版积分规则

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

GMT+8, 2024-8-25 22:10

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

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