串行端口开发的数据交互方式
- 引用程序集
using System.IO.Ports;
- 字段定义
//实例化串口类对象
private SerialPort comm = new SerialPort(); |
- 定义串口对象并设置参数
private void CreateSerialPortService()
{ comm.NewLine = "\r\n"; comm.RtsEnable = true; comm.DtrEnable = true; comm.PortName = "PortName"; //端口名,例如COM3 comm.BaudRate = "BaudRate"; //波特率,例如9600 comm.DataBits = "DataBits"; //数据位,例如8 comm.StopBits = StopBits.One; //停止位,例如StopBits。One(1位停止位) comm.Parity = Parity.None; //奇偶校验,例如Parity。None(无奇偶校验) //添加事件注册 comm.DataReceived += comm_DataReceived; //接收串口数据触发事件 } |
- 接收数据事件
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{ //先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致 int n = comm.BytesToRead; byte[] buf = new byte[n]; //声明一个临时数组存储当前来的串口数据 comm.Read(buf, 0, n); //读取缓冲数据 builder = new StringBuilder(); //清除字符串构造器的内容 //直接按ASCII规则转换成字符串 builder.Append(Encoding.ASCII.GetString(buf)); //追加的形式添加到文本框末端,并滚动到最后。 strData = builder.ToString(); } |
- 启动与关闭
private void OpenOrCloseSerialPort()
{ //根据当前串口对象,来判断操作 if (comm.IsOpen) { //打开时点击,则关闭串口 comm.Close(); } else { //关闭时点击,则打开串口 comm.Open(); } } |
- 串口发送数据
private void Send(string text)
{ comm.Write(text); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】