C#读写串口数据实现代码


-
C#中SerialPort类中DataReceived事件GUI实时处理方法 MSDN:从 SerialPort 对象接收数据时,将在辅助线程上引发 DataReceived 事件。由于此事件在辅助线程而非主线程上引发,因此尝试修改主线程中的一些元素(如 UI 元素)时会引发线程异常。如果有必要修改主 Form 或 Control 中的元素,必须使用 Invoke 回发更改请求,这将在正确的线程上执行.进而要想将辅助线程中所读到的数据显示到主线程的Form控件上时,只有通过Invoke方法来
-
2014-01-04
-
2013-08-14
-
2013-07-26
-
2013-07-17
-
2013-03-27
-
2012-12-07
-
2012-07-04
31KB
C#实现串口操作(包括读写串口,显示数据)
2008-10-04C#实现打开串口,关闭串口,利用串口接收和发送数据,并且能把数据实时显示在屏幕上,实现世博功能!
C#串口读取数据_course
2019-10-18用串口通过设备读取温度湿度光照的时候,除了要把波特率、数据位、串口、奇偶校验。停止位写出来后,还需要写什么代码通过设备来读取数据吗,小萌新求指教
158KB
C#通过串口读取和发送数据
2019-03-16C#通过串口读取和发送数据,简单的串口读取发送数据例子,简单易懂,适合初学者,欢迎下载
C# 串口数据读取和处理的困惑_course
2014-02-06现假设有100 Byte的连续数据要通过串口传输,使用SerialPort类且ReceivedBytesThreshold设为1触发DataReceived 事件接受并处理数据。 问题: 1. 当第一
c# 如何实现串口通信读取数据_course
2010-12-10用c#实现串口通信读取数据时只读前8位 byte TxData1 = new byte { }; n = sp.BytesToRead; byte TxData = new byte;//声明一个临时
72KB
c#中串口数据读写的使用
2010-09-03将字符串数据写入指定串口,并读取显示出来,介绍在c#环境下使用串口的方法。
C# 如果串口的DataReceived事件处理接收到的数据还没处理完,缓冲区又有数据了,此时会再次触发DataReceived事件么?_course
2018-08-25(1)如果DataReceived事件处理接收到的数据还没处理完,缓冲区又有数据了,那么此时是再次触发DataReceived事件,还是等上次的DataReceived事件处理完成,再触发? (2)
C#串口通讯实时读取数据,把数据分成25个一组_course
2019-07-20大学刚毕业在做实习生,老大交代的小任务,现在遇到的瓶颈,请各位大神能多多指导一下,最好直接上代码,谢谢各位!!!新手没有积分,还望慷慨 串口实时读取设备的数据,一直读,现在要以25个数据为一组,在winform的list view中显示出来,一行25个,一行25个,该怎么做,谢谢!!!
38KB
C# 通过COM端口读取数据
2012-09-18C# 通过COM端口读取数据 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceiv
C#串口通信中如何接收串口的数据_course
2012-09-18刚刚学习C#串口通信,不知道怎么接收数据,从网上查了的代码页看不懂,那个朋友可以帮帮忙 serialPort1.DataReceived += new SerialDataReceivedEventH
38KB
C#通过串口通信读取电子称上数据
2018-12-26串口通信,电子称数据读取。程序详细易懂,可以扩展到其他应用。
57KB
C#读取串口数据画图
2018-11-12同学在用FPGA做读卡器,上位机准备用labview做,因为不熟悉所以让我用C#做个备份,备不时之需。 菜鸟级别就跑去给人家帮忙,越帮越忙。他的要求是自定义串口属性,上位机发送命令,然后读取每次809
92KB
c#com串口开发 收发数据
2019-02-19c#com串口开发 可用串口读取 串口数据接收 串口数据发送
9KB
C#读取串口程序
2012-12-04文档中记录了用C#与串口记性交互,里边有详细的注释,设置通讯协议,发送,接收等,如果是只接收就不用看发送指令了
68KB
用c#操作串口进行有效的数据读写,使用serialport类进行编程
2009-02-26用c#开发的一个串口通信程序,实现用c#操作串口进行数据的读写,相当实用
16KB
C# 调用SerialPort类读取和发送串口数据
2017-08-11简单明了的利用SerialPort类读取和发送串口数据
124KB
C#读取串口数据
2015-05-21C#读取串口数据:打开端口、监听端口并获取数据、关闭端口
737KB
c# 读取串口写入数据库
2013-08-26用c#编写的winform程序,读取串口的数据,并写入本地的sqlite数据库,同时写入SQLServer网络数据库,这个过程都是多线程的。
112KB
C#读写串口数据Demo
2018-07-07用C#实现读写串口数据。用于自动化界面和板卡、PLC等通讯
c# 运用serialport与PLC串口通讯,读取(例如D200)的数据_course
2018-06-14网上下的 c# 运用serialport与PLC串口通讯程序,小白看不太懂下的程序,求大神帮忙分析下,主要想知道程序中的tebox1、textbox4、textbox5、textbox6、textbox7分别对应图中哪个空,对应的空应填写什么,例如想读取三菱F3X系列PLC D200的数据,初始地址填200?那设备地址和长度填啥? 界面如下: 主要程序如下: private void btn_open_Click(object sender, EventArgs e) { int nSelect; btn_open.Enabled = false; Object selectedItem = cbxCOMPort.SelectedItem; sp.PortName = selectedItem.ToString();//串口 selectedItem = cbxBaudRate.SelectedItem; sp.BaudRate = int.Parse(selectedItem.ToString());//波特率 nSelect = cbxDataBits.SelectedIndex;//数据位 switch (nSelect) { case 0: sp.DataBits = 8; break; case 1: sp.DataBits = 7; break; case 2: sp.DataBits = 6; break; case 3: sp.DataBits = 5; break; } nSelect = cbxParity.SelectedIndex; switch (nSelect) { case 0: sp.Parity = Parity.None; break; case 1: sp.Parity = Parity.Odd; break; case 2: sp.Parity = Parity.Even; break; case 3: sp.Parity = Parity.Mark; break; case 4: sp.Parity = Parity.Space; break; } nSelect = cbxStopBits.SelectedIndex; switch (nSelect) { case 0: sp.StopBits = StopBits.None; break; case 1: sp.StopBits = StopBits.One; break; case 2: sp.StopBits = StopBits.OnePointFive; break; case 3: sp.StopBits = StopBits.Two; break; } sp.Open(); btn_close.Enabled = true; } private void btn_send_Click(object sender, EventArgs e) { textBox1.Text = ""; int n = 6; byte[] buf = new byte[n]; string ee = textBox4.Text; buf[0] = Convert.ToByte(ee); if (comboBox1.Text == "3X") { buf[1] = Convert.ToByte(3); } else { buf[1] = Convert.ToByte(4); } if (int.Parse(textBox5.Text) <= 255) { buf[2] = Convert.ToByte(0); buf[3] = Convert.ToByte(int.Parse(textBox5.Text)); } else { if (Convert.ToString(int.Parse(textBox5.Text), 16).Length < 4) { int b = Convert.ToInt32(Convert.ToString(int.Parse(textBox5.Text), 16).Substring(0, 1), 16); buf[2] = Convert.ToByte(b); int c = Convert.ToInt32(Convert.ToString(int.Parse(textBox5.Text), 16).Substring(1, 2), 16); buf[3] = Convert.ToByte(c); } else { int b = Convert.ToInt32(Convert.ToString(int.Parse(textBox5.Text), 16).Substring(0, 2), 16); buf[2] = Convert.ToByte(b); int c = Convert.ToInt32(Convert.ToString(int.Parse(textBox5.Text), 16).Substring(2, 2), 16); buf[3] = Convert.ToByte(c); } } if (int.Parse(textBox6.Text) <= 255) { buf[4] = Convert.ToByte(0); buf[5] = Convert.ToByte(int.Parse(textBox6.Text)); } else { if (Convert.ToString(int.Parse(textBox6.Text), 16).Length < 4) { int d = Convert.ToInt32(Convert.ToString(int.Parse(textBox6.Text), 16).Substring(0, 1), 16); buf[4] = Convert.ToByte(d); int f = Convert.ToInt32(Convert.ToString(int.Parse(textBox6.Text), 16).Substring(1, 2), 16); buf[5] = Convert.ToByte(f); } else { int d = Convert.ToInt32(Convert.ToString(int.Parse(textBox6.Text), 16).Substring(0, 2), 16); buf[4] = Convert.ToByte(d); int f = Convert.ToInt32(Convert.ToString(int.Parse(textBox6.Text), 16).Substring(2, 2), 16); buf[5] = Convert.ToByte(f); } } p = int.Parse(textBox6.Text) * 2 + 5; byte[] buf1 = new byte[n + 2]; byte[] ReturnData = new byte[2]; ReturnData = CRC16_C(buf); for (int i = 0; i < n; i++) { buf1[i] = buf[i]; } buf1[n] = ReturnData[1]; buf1[n + 1] = ReturnData[0]; sp.Write(buf1.ToArray(), 0, n + 2); } void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { int n = sp.BytesToRead; byte[] TxData = new byte[n];//声明一个临时数组存储当前来的串口数据 sp.Read(TxData, 0, n); //读取缓冲数据 m = m + n; this.Invoke((EventHandler) (delegate { Array.Resize(ref TxData2, m);//改写数组大小 TxData.CopyTo(TxData2, m - TxData.Length); if (m == p) { byte[] data = new byte[p - 2]; for (int i = 0; i < TxData2.Length - 2; i++) { data[i] = TxData2[i]; } byte[] data2 = new byte[2]; data2[0] = TxData2[TxData2.Length - 2]; data2[1] = TxData2[TxData2.Length - 1]; byte[] data1 = new byte[2]; data1 = CRC16_C(data); if (data1[0] == data2[1] && data1[1] == data2[0]) { for (int j = 3; j <= m - 4; j = j + 2) { string s1 = TxData2[j].ToString(); string s2 = TxData2[j + 1].ToString(); string s = s1 + s2; int g = Convert.ToInt32(s, 10); string h = g.ToString(); textBox1.Text += h + " "; } textBox7.Text = "读取成功"; } else { textBox7.Text = "读取失败"; } m = 0; } } ) ); } public byte[] CRC16_C(byte[] data) { byte CRC16Lo; byte CRC16Hi; byte CL; byte CH; byte SaveHi; byte SaveLo; byte[] tmpData; int Flag; CRC16Lo = 0xFF; CRC16Hi = 0xFF; CL = 0x01; CH = 0xA0; tmpData = data; for (int i = 0; i < tmpData.Length; i++) { CRC16Lo = (byte)(CRC16Lo ^ tmpData[i]); for (Flag = 0; Flag <= 7; Flag++) { SaveHi = CRC16Hi; SaveLo = CRC16Lo; CRC16Hi = (byte)(CRC16Hi >> 1); CRC16Lo = (byte)(CRC16Lo >> 1); if ((SaveHi & 0x01) == 0x01) { CRC16Lo = (byte)(CRC16Lo | 0x80); } if ((SaveLo & 0x01) == 0x01) { CRC16Hi = (byte)(CRC16Hi ^ CH); CRC16Lo = (byte)(CRC16Lo ^ CL); } } } byte[] ReturnData = new byte[2]; ReturnData[0] = CRC16Hi; ReturnData[1] = CRC16Lo; return ReturnData;
如何用C#编写一个程序读取串口数据,用第三方API拿这个数据?_course
2014-11-17初学匝道之人,对C#编程语言还是不太熟悉
-
下载
15.GUI.rar
15.GUI.rar
-
学院
【数据分析-随到随学】Mysql数据库
【数据分析-随到随学】Mysql数据库
-
下载
springmvcDemo
springmvcDemo
-
学院
2021最新Kubernetes(k8s)集群实战精讲
2021最新Kubernetes(k8s)集群实战精讲
-
下载
Finalshell背景图
Finalshell背景图
-
博客
用python定时向邮件发送天气预报
用python定时向邮件发送天气预报
-
学院
【数据分析-随到随学】互联网行业业务指标及行业数
【数据分析-随到随学】互联网行业业务指标及行业数
-
学院
转行做IT-第5章 流程控制语句
转行做IT-第5章 流程控制语句
-
博客
openstaxck简介
openstaxck简介
-
博客
Android 开发->控件使用篇
Android 开发->控件使用篇
-
下载
禅道的安装和说明.docx
禅道的安装和说明.docx
-
学院
单片机完全学习课程全五季套餐
单片机完全学习课程全五季套餐
-
博客
设计范式
设计范式
-
学院
【数据分析实战训练营】Hive详解
【数据分析实战训练营】Hive详解
-
学院
转行做IT-第2章 HTML入门及高级应用
转行做IT-第2章 HTML入门及高级应用
-
博客
Offer68II.二叉树的最近公共祖先——简单
Offer68II.二叉树的最近公共祖先——简单
-
下载
Android源码笔记
Android源码笔记
-
博客
vue上传excel
vue上传excel
-
下载
土地利用总体规划管理办法.docx
土地利用总体规划管理办法.docx
-
学院
Spring Boot2.X仿朋友圈PC版系统实战_架构1.0
Spring Boot2.X仿朋友圈PC版系统实战_架构1.0
-
学院
Java无损导出及转换word文档
Java无损导出及转换word文档
-
下载
gzdgjs.zip
gzdgjs.zip
-
博客
WordPress Qui-Pure博客主题,自媒体模板
WordPress Qui-Pure博客主题,自媒体模板
-
下载
成绩管理系统.doc
成绩管理系统.doc
-
下载
csi2txlatticeecp3raw10bit1lane.zip
csi2txlatticeecp3raw10bit1lane.zip
-
博客
python数据处理之文本向量化(独热编码和词嵌入)
python数据处理之文本向量化(独热编码和词嵌入)
-
学院
java微服务常用技术整合
java微服务常用技术整合
-
博客
vue——keepAlive第一次无效问题及解决方法
vue——keepAlive第一次无效问题及解决方法
-
学院
微信公众号2021之网页授权一学就会java版
微信公众号2021之网页授权一学就会java版
-
博客
算法:三数之和
算法:三数之和