包含标签 串口 的文章

C#中结构体定义并转换字节数组

最近的项目在做socket通信报文解析的时候,用到了结构体与字节数组的转换;由于客户端采用C++开发,服务端采用C#开发,所以双方必须保证各自定义结构体成员类型和长度一致才能保证报文解析的正确性,这一点非常重要。 ​ 首先是结构体定义,一些基本的数据类型,C#与C++都是可以匹配的:……

阅读全文

C# 串口操作系列(5)

串口是很简单的,编写基于串口的程序也很容易。新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了: 一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据 + 校验 一个Ascii格式的文本协议,一般包含: 数据头 + 正文 + 数据结束标识……

阅读全文

C# 串口操作系列(4)

上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即: 协议头 + 数据 + 校验 + 数据尾 。 文本方式的数据比较容易分析。如果数据缓存,可以考虑用StringBuilder。或是不缓存也……

阅读全文

C# 串口操作系列(3)

我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。 我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于……

阅读全文

C# 串口操作系列(2)

第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户……

阅读全文

C# 串口操作系列(1)

我假设读者已经了解c#的语法,本文是针对刚打算接触串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础。 一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含: 串口选择 波特率选择 打开 关闭 接受数据显示 发送数据输入 发送数据 数据量提示以及归零 好吧,有了这些功能,我们……

阅读全文