资源描述:
《c#开发串口总结,并提炼串口辅助类到公用类库中》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西,利用SerailPort组件,对串口的各种操作也非常的方便,由于本人总是喜欢把一些常用的东西封装成可供重复利用的类库,因此,阅百家代码,提炼总结优化,把对串口的操作封装成一个公用的类库,应付日常的串口编程开发,也算是工作的一个阶段性总结吧。先上图,了解串口的一些基本的东西,并逐步介绍相关的知识。微软在.NETFrameWork2.0中对串口通讯进行了封装,我们可以在.net2.0及以上版本开发时直接使用SerialPor
2、t类对串口进行读写操作。SerialPort类的属性主要包括:1)串口名称(PortName)2)波特率(BaudRate)3)数据位DataBits4)停止位StopBits5)奇偶校验ParitySerialPort类的事件主要包括:DataReceived:用于异步接收串口数据事件ErrorReceived:错误处理事件SerialPort类的方法主要包括:Open();Close();Read();Write()、DiscardInBuffer()、DiscardOutBuffer()等从上面的测试例子图中,我们可以看到,一般对串口的操作,需要提供串口号、波特率、
3、数据位、停止位、奇偶校验的参数,用来构造一个串口操作类,以便实现具体的串口操作,而这些参数有的是系统内置的枚举参数,我们可以通过遍历枚举对象来绑定下来列表(如停止位、奇偶校验);但有些参数却不是系统内置的枚举类型,例如波特率、数据位等,而且对这些参数操作也是串口开发经常用到的,因此,第一步,我对这些参数的绑定做了一个简单的封装。1、先构造波特率、数据位这两个枚举对象,方便实际操作。//////串口数据位列表(5,6,7,8)///publicenumSerialPortDatabits:int{FiveBits=5,SixBits=6
4、,SeventBits=7,EightBits=8}//////串口波特率列表。///75,110,150,300,600,1200,2400,4800,9600,14400,19200,28800,38400,56000,57600,///115200,128000,230400,256000///publicenumSerialPortBaudRates:int{BaudRate_75=75,BaudRate_110=110,BaudRate_150=150,BaudRate_300=300,BaudRate_600=600,Ba
5、udRate_1200=1200,BaudRate_2400=2400,BaudRate_4800=4800,BaudRate_9600=9600,BaudRate_14400=14400,BaudRate_19200=19200,BaudRate_28800=28800,BaudRate_38400=38400,BaudRate_56000=56000,BaudRate_57600=57600,BaudRate_115200=115200,BaudRate_128000=128000,BaudRate_230400=230400,BaudRate_256000=2560
6、00}复制代码2、对常用的参数下拉列表绑定做一个封装。//////设置串口号//////publicstaticvoidSetPortNameValues(ComboBoxobj){obj.Items.Clear();foreach(stringstrinSerialPort.GetPortNames()){obj.Items.Add(str);}}//////设置波特率///publicstaticvoidSetBauRateValues(Com
7、boBoxobj){obj.Items.Clear();foreach(SerialPortBaudRatesrateinEnum.GetValues(typeof(SerialPortBaudRates))){obj.Items.Add(((int)rate).ToString());}}//////设置数据位///publicstaticvoidSetDataBitsValues(ComboBoxobj){obj.Items.Clear();foreach(SerialPortData