2024年5月11日发(作者:)
开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深
入了解,串口也不再是什么神秘的东西,利用SerailPort组件,对串口的各种操作也非常的方便,由于本人总是喜欢把一些常用的东
西封装成可供重复利用的类库,因此,阅百家代码,提炼总结优化,把对串口的操作封装成一个公用的类库,应付日常的串口编程开
发,也算是工作的一个阶段性总结吧。
先上图,了解串口的一些基本的东西,并逐步介绍相关的知识。
微软在 .NET FrameWork2.0中对串口通讯进行了封装,我们可以在.net2.0及以上版本开发时直接使用SerialPort类对串口进行读写
操作。
SerialPort类的属性主要包括:
1)串口名称(PortName)
2)波特率(BaudRate)
3)数据位 DataBits
4)停止位 StopBits
5)奇偶校验 Parity
SerialPort类的事件主要包括:
DataReceived:用于异步接收串口数据事件
ErrorReceived:错误处理事件
SerialPort类的方法主要包括:
Open();Close();Read();Write()、DiscardInBuffer()、DiscardOutBuffer()等
从上面的测试例子图中,我们可以看到,一般对串口的操作,需要提供串口号、波特率、数据位、停止位、奇偶校验的参数,用来构
造一个串口操作类,以便实现具体的串口操作,而这些参数有的是系统内置的枚举参数,我们可以通过遍历枚举对象来绑定下来列表
(如停止位、奇偶校验);但有些参数却不是系统内置的枚举类型,例如波特率、数据位等,而且对这些参数操作也是串口开发经常
用到的,因此,第一步,我对这些参数的绑定做了一个简单的封装。
1、先构造波特率、数据位这两个枚举对象,方便实际操作。
///
/// 串口数据位列表(5,6,7,8)
///
public enum SerialPortDatabits : int
{
FiveBits = 5,
SixBits = 6,
SeventBits = 7,
EightBits = 8
}
///
/// 串口波特率列表。
/// 75,110,150,300,600,1200,2400,4800,9600,14400,19200,28800,38400,56000,57600,
/// 115200,128000,230400,256000
///
public enum SerialPortBaudRates : int
{
BaudRate_75 = 75,


发布评论