从事嵌入式C开发多年,很多产品需要对传感器性能或者产品稳定性做追踪,固决定用C#做一个串口上位机。安装的是studio 2010,安装版本网上可以轻易找到下载。整个开发过程在网上找了不少资料,所以记录文档有很多来自网友的blog。在此感谢大家!
具体参考实例:https://mp.csdn.net/console/editor/html/105405707
一、新建工程
二、基本控件使用
引用命名空间,直接使用命名空间包含的变量名和函数即方法。
2.1 Label控件:位置、Text修改
2.2 comboBox控件使用,如显示COM口,波特率;
2.3 serial控件
SerialPort类位于System.IO.Ports命名空间下。用于控制串行端口文件资源,
此类提供同步I/O和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序的访问。
SerialPort类支持一下编码:ASCIIEncoding、UTF8Encoding、UnicodeEncoding、UTF32Encoding以及mscorlib.dll中定义的代码页小于50000或者为54936的所有编码。(摘自MSDN,具体网址)
2.3.1 SerialPort常用属性
- BaudRate 获取或设置串行波特率
- BreakState 获取或设置中断信号状态
- BytesToRead 获取接收缓冲区中数据的字节数
- BytesToWrite 获取发送缓冲区中数据的自己数
- DataBits 获取或设置每个字节的标准数据位长度(默认为8)
- DtrEnable 获取或设置一个值,该值指示Null字节在端口和接收缓冲区之间传输时是否被忽略
- Encoding 获取或设置传输前后的文本转换的字节编码
- IsOpen 获取一个值,该值指示SerialPort对象的打开或关闭状态
- NewLine 获取或设置用于解释ReadLine和WriteLine方法调用结束的值
- Parity 获取或设置奇偶校验检查协议
- PortName 获取或设置通信端口,包括但不限于所有可用的COM端口
- ReadBufferSize 获取或设置SerialPort输入缓冲区的大小
- ReadTimeOut 获取或设置读取操作未完成时发生超时之前的毫秒数
- ReceivedBytesThreshold 获取或设置DataReceived事件发生前内部输入缓冲区中的字节数
- RtsEnable 获取或设置一个值,该值指示在串行通信中是否启用请求发送RTS信号
- StopBits 获取或设置每个字节的标准停止位数
- WriteBufferSize 获取或设置串行端口输出缓冲区的大小
- WriteTimeout 获取或设置写入操作未完成时发生超时之前的毫秒数
2.3.2 SerialPort的主要方法
- Close 关闭端口连接,将IsOpen属性设置成为false,并释放内部Stream对象
- Dispose 释放SerialPort对象使用的非托管资源
- GetPortNames 获取当前计算机的串行端口名称数组
- Open 打开一个新的串行端口连接
- Read 从SerialPort输入缓冲区中读取
- ReadByte 从SerialPort输入缓冲区中同步读取一个字节
- ReadChar 从SerialPort输入缓冲区中同步读取一个字符
- ReadExisting 在编码的基础上,读取SerialPort对象的流和输入缓冲区中所有立即可用的字节
- ReadLine 一直读取到输入缓冲区中的NewLine值
- ReadTo 一直读取到输入缓冲区中指定value的字符串
- Write 将数据写入到串行端口输出缓冲区
- WriteLine 将指定的字符串和NewLine值写入到输出缓冲区
- DataReceived 表示将处理SerialPort对象的数据接收事件的方法
- ErrorReceived 表示处理Serialport对象的错误事件的方法
2.4 richTextBox1控件, TextBox文本控件的换行符为‘\r\n’, 所以改用richTextBox1
2.4.1 设置最下边随父控件大小拉升