cp网站开发搭建网站多少钱一套,asp网站压缩,中国有多少网站有多少域名,怎么在百度上创建自己的网页C# 完成串口通信RS485|RS232上下位机交互 第零步#xff1a; 我用的是电脑usb 转串口的所以首先是驱动程序下载#xff0c;我们用的是CH341 下载地址#xff1a;https://www.wch.cn/downloads/CH341SER_EXE.html
第一步#xff1a;连接机器 RS485 上面有三个端子#xf… C# 完成串口通信RS485|RS232上下位机交互 第零步 我用的是电脑usb 转串口的所以首先是驱动程序下载我们用的是CH341 下载地址https://www.wch.cn/downloads/CH341SER_EXE.html
第一步连接机器 RS485 上面有三个端子A正B负GND地线我们需要把他们都对应连接GND看你连不连都可以 第二步 连接好了之后就是C# 控制程序啦这里没什么特别的主要是用到一个类 SerialPort
SerialPort类 在C#中串口通信主要是使用SerialPort类来实现的。SerialPort类提供了串口通信中所有必需的属性和方法。使用SerialPort类我们可以轻松地连接电脑和外设进行数据传输。
SerialPort类的属性 SerialPort类中有几个重要的属性值通过设置这些属性值我们可以对串口进行配置从而实现串口通信。以下是SerialPort类中几个重要的属性
PortName串口端口名称如COM1、COM2等BaudRate波特率指每秒钟传输的数据位数Parity奇偶校验位用于检验数据传输是否有误DataBits数据位用于设置每次传输多少位数据StopBits停止位用于指定数据传输过程中的间隔时间。
SerialPort类的常用方法 SerialPort类的方法包括打开串口、关闭串口、发送数据等操作。以下是SerialPort类的几个重要的方法
Open()打开串口Close()关闭串口Write()发送数据Read()接收数据。
随便写了一个贴这里了 一、 首先先赋值参考 static SerialPort serialPort new SerialPort();private void Send_Load(object sender, EventArgs e){// 查询更新已有端口IListstring list new Liststring();// 读取当前有哪些COM口foreach (string s in SerialPort.GetPortNames()){list.Add(s);}port_m.DataSource list;// 传输速度int[] speed_data new int[] { 128000, 9600, 19200, 38400, 115200 };speed.DataSource speed_data;// 传输速度int[] times_data new int[] { 10, 1, 2, 5, 10, 20 };times.DataSource times_data;// 奇偶校验IListstring list1 new Liststring();list1.Add(0不发生奇偶校验检查);list1.Add(1设置奇偶校验位奇数);list1.Add(2设置奇偶校验位偶数);list1.Add(3将奇偶校验位保留为1);list1.Add(4将奇偶校验位保留为0);odd_even.DataSource list1;// 停止位string[] stop { 0, 1, 2 };stop_num.DataSource stop;serialPort.DataBits 8;}二、打开串口发送数据接收数据关闭串口 private void simOpen_Click(object sender, EventArgs e){serialPort.PortName port_m.Text;serialPort.BaudRate Int32.Parse(speed.Text);switch (odd_even.Text) {case 0不发生奇偶校验检查:serialPort.Parity Parity.None;break;case 1设置奇偶校验位奇数:serialPort.Parity Parity.Odd;break;case 2设置奇偶校验位偶数:serialPort.Parity Parity.Even;break;case 3将奇偶校验位保留为1:serialPort.Parity Parity.Mark;break;case 4将奇偶校验位保留为0:serialPort.Parity Parity.Space;break;default:serialPort.Parity Parity.None;break;}serialPort.DataBits 8;switch (stop_num.Text){case 1:serialPort.StopBits StopBits.One;break;case 2:serialPort.StopBits StopBits.Two;break;default:serialPort.StopBits StopBits.One;break;}try{serialPort.Open();}catch (Exception ){txtLog.Text \n 串口打开失败请检查是不是这个COM或者检查参数是否有误;}serialPort.Write(txtSend.Text);//这个是文本发送数据给对应的串口Byte[] TxData { 0x04, 0x03, 0x00, 0x03, 0x00, 0x01, 0x74, 0x5f }; //定义通讯指令 ,0x04设备地址为40x03功能码为3 0x00, 0x03是通讯地址吗0x00, 0x01是寄存器数量0x74, 0x5f是CRC校验serialPort.Write(TxData , 0, 8);//或者这样发送byte[] recData new byte[7];serialPort.Read(recData, 0, 7);//接收数据serialPort.Close();//关闭串口}好了有兴趣的朋友可以去了解一下SerialPort