社区
C#
帖子详情
串口通信SerialPort控件,接收时会丢失数据
缭绕飘渺
2012-01-12 10:59:06
如题,硬件设备每秒发送一次数据,542字节,串口触发接收事件的字节大小已经设置好了
但是接收后发现有丢失数据的现象,尤其是第一帧过来的,基本都不完整,从第二帧开始还算可以
大家做串口一般怎么处理这个问题
我看了不少介绍,一般是先接收,比如建立一个较大的缓存,接收数据,先存入其中
然后从中根据协议取正确的数据
大家有什么其他好的方法或者源程序共享下的
...全文
451
8
打赏
收藏
串口通信SerialPort控件,接收时会丢失数据
如题,硬件设备每秒发送一次数据,542字节,串口触发接收事件的字节大小已经设置好了 但是接收后发现有丢失数据的现象,尤其是第一帧过来的,基本都不完整,从第二帧开始还算可以 大家做串口一般怎么处理这个问题 我看了不少介绍,一般是先接收,比如建立一个较大的缓存,接收数据,先存入其中 然后从中根据协议取正确的数据 大家有什么其他好的方法或者源程序共享下的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cust_hf
2012-01-15
打赏
举报
回复
串口通信与网络类似。都是串行通信,谁敢说数据是完整的,不丢呢?
既然服务器方和客户端方都是自己做的,那么问题也不是那么难以解决。
可以仿造网络协议的涉及方法,逐层封装。
在接收方解析较为麻烦。建议采用递归下降法(忘记了翻翻编译原理的书)。优点是,可以及时发现传输错误。
传输过程中大数据块,很可能被分解多个小块。所以需要一个字节一个字节自己解析。
熙风
2012-01-13
打赏
举报
回复
http://wenku.baidu.com/view/183b6e2abd64783e09122b99.html
熙风
2012-01-13
打赏
举报
回复
c# SerialPort控件串口通信
shashengduguzhe
2012-01-12
打赏
举报
回复
有的硬件串口会有问题,但你的问题好像不是硬件设备问题。串口触发接收事件最好做成收一个数据就存一个数据。不然有些缓冲数据会被接收的数据替换掉。
段传涛
2012-01-12
打赏
举报
回复
硬件一般不会的。
程序有转换吗?
EnForGrass
2012-01-12
打赏
举报
回复
一般是先接收,比如建立一个较大的缓存,接收数据,先存入其中
是的现在很多都这样子做
nandi_1
2012-01-12
打赏
举报
回复
很简单,system.threading.sleep(500);
testtestett
2012-01-12
打赏
举报
回复
换硬件试试,先排除不是硬件的问题。我以前就碰到是硬件坏了造成的。
C#上位机串口编程、Modbus编程
串口(
Se
ria
l
Port
),也称串行通讯接口(通常指COM口),
串口通信
是指将
数据
一个比特一个比特地逐位进行传输的通信模式。 C#
串口通信
是借助一个
Se
ria
l
Port
类的对象来方便的对串口进行读写。 Modbus...
C# 串口
Se
ria
l
Port
控件
串口对于工控领域应用较为广泛
MFC
串口通信
(
Se
ria
l
Port
)
Se
ria
l
Port
实现
串口通信
C# 解决上位机串口
接收
数据
丢失
问题
方法一是:
port
_DataReceived(
Se
ria
l
Port
控件
的
数据
接收
方法,当有
数据
来临
时会
触发)会创建一个线程,因此当串口在等待
数据
时,不影响主窗体或主线程的操作。方法二是:使用缓存机制(参考:...
C#
Se
ria
l
Port
控件
说明
1.命名空间:System.IO.
Port
s,包含了控制串口的类、同步I/O、事件驱动I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问。使用方法:Using System.IO.
Port
s 2.通讯端口号:
Port
Name,获取和设置通信端口,...
C#
110,545
社区成员
642,580
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章