C# serialport串口接收到的数据如何处理(称重软件) [问题点数:50分,结帖人u010270049]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:0
结帖率 75%
Bbs9
本版专家分:88671
Blank
金牌 2015年2月 总版技术专家分月排行榜第一
2015年1月 总版技术专家分月排行榜第一
Blank
银牌 2015年3月 总版技术专家分月排行榜第二
2014年12月 总版技术专家分月排行榜第二
2014年9月 总版技术专家分月排行榜第二
Blank
红花 2015年3月 .NET技术大版内专家分月排行榜第一
2015年2月 .NET技术大版内专家分月排行榜第一
2015年1月 .NET技术大版内专家分月排行榜第一
2014年12月 .NET技术大版内专家分月排行榜第一
2014年11月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2015年7月 .NET技术大版内专家分月排行榜第二
2015年6月 .NET技术大版内专家分月排行榜第二
2015年5月 .NET技术大版内专家分月排行榜第二
2014年10月 .NET技术大版内专家分月排行榜第二
2014年9月 .NET技术大版内专家分月排行榜第二
2014年8月 .NET技术大版内专家分月排行榜第二
Bbs3
本版专家分:572
Blank
脉脉勋章 绑定脉脉第三方账户获取
Blank
领英 绑定领英第三方账户获取
Bbs1
本版专家分:0
C#串口SerialPort类接收多字节(使用委托进行之后的处理
问题描述: <em>C#</em> 中<em>串口</em>SerialPort类不能<em>接收</em>多字节,在SerialPort已经设置了ReceiveByteThreshold 触发read的字节数 之前的<em>串口</em><em>接收</em>事件如下: private void SerialPort1_DataReceived(obje...
C#一步步写串口通信
用<em>C#</em>一步步写<em>串口</em>通信 标签: c#textboxbuttonobjectstring 2012-08-10 14:57 18916人阅读 评论(38) 收藏 举报  分类:   <em>C#</em>(2)  项目经验(1)  版权声明:本文为博主原创文章,未经博主允许不得转载。    附言: 1. 有网友反应我写的这篇文章还不错,索性就将它置顶
C#串口接收数据问题,怎么在处理数据前判断数据接收完毕
上位机<em>接收</em><em>数据</em>格式如下: 0x53 0x50 0x01 0x01 0x00 0x00 0x00 0x00 0x57 0x23 0x7F 0x3F 0xA6 0xFC 0xBF 0x3A 0x11 0x07 0x17 0x11 0x13 0x39 其中 53 50是包头,后面是有效<em>数据</em>,我现在想把0x00 0x00 0x00 0x00 0x57 0x23 0x7F 0x3F 0xA6 0xFC 0xBF 0x3A 这几个字节分别转化为三个浮点数,但是问题是,我现在无法判断<em>数据</em>是否<em>接收</em>完毕,及完整的一个<em>数据</em>包。 注:通过按下一次单片机上的“确定键”,单片机给上位机发送一次<em>数据</em>,<em>数据</em>格式如上描述。请大家指点下,谢谢! 我是通过绑定<em>串口</em><em>接收</em>事件实现的,但这样会多次触发<em>串口</em><em>接收</em>事件,主要卡在<em>数据</em><em>接收</em>和<em>数据</em>以浮点数显示环节,代码如下: private void sp_DataReceived(object sender,SerialDataReceivedEventArgs e) { if (isHex==true) { string str; uint i=0; int bufferlen = sp.BytesToRead; byte[] bytes = new byte[bufferlen]; sp.Read(bytes, 0, bufferlen); for(i=0;i); } } else { int bufferlen = sp.BytesToRead; byte[] bytes = new byte[bufferlen]; sp.Read(bytes, 0, bufferlen); string gb = System.Text.Encoding.Default.GetString(bytes); tbxRecvData.AppendText(gb); } }
C# 接受串口数据处理的问题
<em>串口</em><em>接收</em>放在一个事件里 form_load里 //添加事件注册 comm.DataReceived += comm_DataReceived; <em>接收</em>函数: void comm_DataReceived
基于C# Winform的串口数据接收
今天,我分享一篇文章,讲述 基于<em>C#</em> Winform的<em>串口</em><em>数据</em><em>接收</em>编程(适合大概明白WinForm编程的同学,没有接触过WinForm的同学下载源码学习) 首先添加<em>串口</em>(自行拖拽) [csharp] view plain copy SerialPort serialPort1 = new SerialPort("COM2", 9
请问下如何从串口接收到的字符串中提取数据
比如说从<em>串口</em>中收到字符串“AA 75 C2 00 06 00 11 10 25 16 36 34 2B AA 75 C2 00 06 00 11 10 25 16 36 41 5E AA 75 C2
关于串口接收并解析数据
<em>接收</em>就是在SerialPort类的rececivedata里面<em>接收</em> int a=comm.ByteToRead; byte buf=new byte; comm.Read(buf,0,a); 现在的情
如何解析串口接收的多个设备的多种数据
使用<em>C#</em>2010如何解析<em>串口</em><em>接收</em>的多个设备的多种<em>数据</em>? 我的电脑通过<em>串口</em>与<em>串口</em>服务器连接,<em>串口</em>服务器<em>接收</em>多个设备发送的<em>数据</em>并转发给电脑. 每个设备有多种<em>数据</em>,通过功能码区分,有的<em>数据</em>有分帧情况. 每个
VS2013用C写串口收发数据,发送数据没问题,然后自己接收奇怪的错误
我要收发的<em>数据</em>都是一组为24个字节,所以使用的ReadFile和WriteFile函数把要收发的<em>数据</em>放到了一个24字节是数组里,来进行传输。波特率校验位都设置的一样,但是收的<em>数据</em>会出现固定的10-13
C#的SerialPort串口程序设计总结
简介:微软的VS提供了SerialPort控件,也就是串行端口资源。 当然也可以添加引用usingSystem.IO.Ports; 通过实例化SerialPort对象就可以使用其属性和方法了。 SerialPortserialPort1=newSerialPort(); 最重要的几个属性: serialPort1.Open();打开串行端口连接 serialPort1....
串口通信中,解决serialport.DataReceived接收到的数据不完整
private SerialPort <em>serialport</em> = new SerialPort(); private StringBuilder builder = new StringBuilder(); // private StringBuilder bs = new StringBuilder();//用于存储一条完整信息; Boolean op
C#实现串口数据循环发送
<em>C#</em>实现<em>串口</em><em>数据</em>循环发送(待更) 1.起始 最近在公司做上位机和设备进行<em>串口</em>通信的项目,自己就写了个<em>串口</em>通信工具,今天是第三天,刚刚实现<em>串口</em>的双向通信。 2.<em>软件</em>的架子 先进行界面设计,将需要的功能放上来。 主要功能包括:打开<em>串口</em>、关闭<em>串口</em>,向<em>串口</em>发送<em>数据</em>以及从<em>串口</em>读取<em>数据</em>。在发送和<em>接收</em>的文本框里面,我加上了切换16进制的功能,方便调试。
串口serialport.Read()接收一部分数据
string data="" int count=<em>serialport</em>.ByteToRead; byte byteBar=new byte; <em>serialport</em>.Read(byteBar,0,cou
串口通讯系列五之串口数据接收处理
private string nstr = &quot;&quot;; private string mstr = &quot;&quot;; public void YF_DataReceived(object sender, SerialDataReceivedEventArgs e) { int line = ComDevice.BytesToRead; ...
SerialPort实现与地磅通信
1.拖一个serialPort 命名sp。2..关键在于DataReceived事件的<em>处理</em>.波特率设定与仪表设置一致:1200.ReadBufferSize可设置为通信协定的<em>数据</em>长度:12.注意起始与结束编码:0x02, 0x03.Invoke实现委托,使得辅助线程修改主线程控件内容(也可以设置CheckForIllegalCrossThreadCalls直接跨线程作业)
使用 SerialPort 读取地磅称重数量
现在要通过SerialPort去读取地磅的<em>数据</em>,端口为COM1,波特率为1200,如果不设置校验位,停止位,<em>数据</em>位这些参数会不会对度 过来的数产生影响,怎么实时读取地磅上的真实重量,求教各位达人
C# 地磅串口编程
<em>C#</em> 地磅<em>串口</em>编程 http://www.cnblogs.com/cancer_xu/archive/2012/09/14/WeighBridge-Com.html http://www.cnblogs.com/s1ihome/p/4049875.html    
C#串口通讯,serialPort1_DataReceived接收数据异常。
serialPort1_DataReceived触发事件: 下位机发送某指令为1s一帧,但是该事件触发后显示在上位机是几毫秒一个,而且上位机对该指令做出的响应未生效,上位机仍在几毫秒一帧的显示。而且当
使用.net的SerialPort串口监控控件接收串口数据
前述: 在一个项目中,需要从<em>串口</em>通信的磁卡读卡器中读取刷卡的卡号,以便后续的业务操作。该刷卡器的型号为:SMR-RU2,使用USB接入电脑,通过USB转<em>串口</em>,Windows会根据USB口分配器固定的<em>串口</em>号。本人使用了.net中自带的SerialPort<em>串口</em>监控控件来读取磁卡读卡器所读取的卡号,其解决方法如下: SerialPort简述:
c# 串口通讯serialPort1 怎样判断一条完整的数据发送完。
定义数组bb,并将其赋值,然后是下面的代码: int len = bb.Length; serialPort1.Write(bb, 0, len);//向<em>串口</em>写入<em>数据</em> //本次发送结束 如何写发送结束
C#串口接收数据触发事件
当使用<em>串口</em><em>接收</em><em>数据</em>的时候,会用到下列语句:      serialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 而当<em>接收</em>到<em>数据</em>时,调用port_DataReceived函数。 其中:    1)serialPort.DataReceived 是一个事件(Event);
c#串口收发数据
c#<em>串口</em><em>接收</em>发送<em>数据</em>  重要的几个函数 构造函数 InitializeComponent(); //为<em>串口</em>绑定<em>接收</em><em>数据</em>事件 this.serialPort1.DataReceived += new SerialDataReceivedEventHandler
C#,COM口,接收,发送数据
1.COMHelper类 /// &lt;summary&gt;初始化串行端口&lt;/summary&gt;private SerialPort _serialPort; public SerialPort serialPort{get { return _serialPort; }set { _serialPort = value; }} /// &lt;summary&gt;...
基于Qt 5.7 自己写一个漂亮的串口助手
之前自己写了用于上位机做基本收发的界面,独立出来相当于一个<em>串口</em>助手,先贴图:功能作为<em>串口</em>助手来说还算完善,五个发送槽,一个<em>接收</em>槽,可以检测可用<em>串口</em>并加上相关标志,<em>串口</em>设置,记数功能,还有菜单栏上的文件操作和一些选择功能。
操作串口通信类(IO.Ports)-SerialPort
<em>串口</em>的使用:   1,<em>串口</em>控件位于 工具箱—组件—SerialPort, 拖动到窗体上,设置属性(Name),命名。                                           可在属性处进行设置,也可以在后台代码页进行手动写:
如何在c#中实现串口接收一个字节就触发事件处理函数一次?
因工作需要编写一个上位机,监视modbus主机和从机在485通信线上发送的<em>数据</em>,但是现在出现的问题是不能利用超时检测来断开主机发送的帧<em>数据</em>和从机回复的帧<em>数据</em>,经过调试发现,serialPort类就算设
C#上位机编程完成串口通讯,然后实时数据处理
小白一枚,按照老师要求现在完成了<em>数据</em>的<em>接收</em>和<em>处理</em>。因为是5ms<em>接收</em>一个<em>数据</em>,接受完收据之后<em>处理</em>了还要显示到一个新的窗体里,现在基本功能完成了,不过程序在运行一会儿之后会变得很卡,看了有异步委托等方法,
串口通讯 SerialPort,可获取串口反馈实例
<em>串口</em>通讯 SerialPort,可获取<em>串口</em>反馈实例,是在 <em>串口</em>通讯简单例子上修改,确定可获取反馈信息。在<em>C#</em>2012上通过,好象2015也行。
C#中使用SerialPort类实现串口通信
表1                                                      SerialPort类的常用属性 名  称 说  明 BaseStream 获取 SerialPort 对象的基础 Stream 对象 BaudRate 获取或设置串行波特率 Bre
c#用serialport进行的串口数据接收,遇到了问题,求大神指点
运行后再richtextbox1中只显示一个数,例如:33 随后会报错:对象未引用到对象的实例,点了关闭后又会出现一个<em>数据</em>,例如31,之后又会报错,如此循环,而且<em>数据</em>不太对。 整了好久了,希望能帮帮忙,第一次做这,谢谢!! 代码: namespace yfy_<em>串口</em>调试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /****************************设置变量******************************/ public string[] strArray; public SerialPort sp1 = new SerialPort(); public Byte[] mydata; public int mydatalength; //这个数的值是由<em>接收</em>到的字节长度决定的,并且作为mydata的长度,如果索引值还超过数组定义值,就应该是<em>接收</em>问题。 public int zhengfu = 2, now_x = 30; public static Bitmap bmp = new Bitmap(500,350); public Graphics gph = Graphics.FromImage(bmp); public char name_image='A'; /*****************************相关函数****************************/ public void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)//<em>数据</em><em>接收</em>函数 { if (sp1.IsOpen==true ) //为了严谨性,加上检查<em>串口</em>是否被打开 { if (rbRcv16.Checked == true) //<em>接收</em>16进制按钮 { try { int average_speed = 0; //设置初始平均速度 Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建<em>接收</em>字节数组 sp1.Read(receivedData, 0, receivedData.Length); //读取<em>数据</em> sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer mydatalength = receivedData.Length; for (int i = 0; i < receivedData.Length; i++) //窗体显示 { richTextBox1.Text = receivedData[i].ToString("X2"); //16进制显示在接受栏 mydata[i] = receivedData[i]; richTextBox1.Text += ","; //让每个<em>数据</em>都隔开 average_speed += receivedData[i]; } textBox1.Text = (average_speed / receivedData.Length).ToString("X2"); } catch (System.Exception ex) { MessageBox.Show(ex.Message, "出错提示"); } } } else { MessageBox.Show("请打开某个<em>串口</em>或者没有选中16进制<em>接收</em>", "错误提示"); } } private void Form1_Load(object sender, EventArgs e)//页面初始化 { Control.CheckForIllegalCrossThreadCalls = false; //强制不检查线程 sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived); //订阅委托 sp1.ReceivedBytesThreshold =1; //当缓冲区的字节数为x时,触发datareceive事件 //检查是否有<em>串口</em> string[] str = SerialPort.GetPortNames(); if (str == null) { MessageBox.Show("本机没有<em>串口</em>!", "Error!"); return; } //添加<em>串口</em>项目 foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) { cbSerial.Items.Add(s); //获取有COM口 } rbRcv16.Checked = true; //<em>接收</em><em>数据</em>按16进制进行 } private void btnSwitch_Click(object sender, EventArgs e)//设置<em>串口</em> { if (sp1.IsOpen == false) { try { string serialName = cbSerial.SelectedItem.ToString();//读取<em>串口</em>号 sp1.PortName = serialName; //设置<em>串口</em>号 sp1.BaudRate = 9600; //波特率 sp1.DataBits = 8; //<em>数据</em>位 sp1.StopBits = StopBits.One; //停止位 sp1.Parity = Parity.None; //校验位 sp1.Open(); //打开<em>串口</em> btnSwitch.Text = "关闭<em>串口</em>"; } catch (System.Exception ex) { MessageBox.Show("Error:" + ex.Message, "Error"); return; } } else { sp1.Close(); //关闭<em>串口</em> btnSwitch.Text = "打开<em>串口</em>"; } }
串口通讯中接收和发送float类型数据
使用共用体来解决<em>数据</em>的编解码问题,共用体可以使不同的<em>数据</em>类型来共享相同的地址空间。#include #include int main(void) { union result { float d; unsigned char data[4]; }r1,r2; // 特别需要注意的是在单片机中in
C# 串口通信(彻底解决C#串口通信中的数据丢失问题)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要资源分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
c#通过DataReceived接收串口数据(转换16进制)
private void Form1_Load(object sender, EventArgs e) {     serialPort1.PortName = "COM1";     serialPort1.BaudRate = 9600;     serialPort1.DataBits = 8; //<em>数据</em>位     serialPort1.Parity = System.IO.Po
C#使用serialport串口发送和接收接收不到返回数据
自己写的一个<em>串口</em><em>接收</em>发送的小程序,向<em>串口</em>发送命令是应该有返回信息的 可是写的程序运行没有任何返回信息,求解 public partial class Form1 : Form { SerialPort
C# 接受串口数据处理的问题, 包全粘帖一起了 怎么处理
发送一个命令后 收到ARM那边传来的<em>数据</em>,其实ARM是打了四次,分别如下: F0037E018E 7001 17 01060000FFFF01444444444444444444444444 42 记
C# serialport 串口 接收数据不全
使用<em>serialport</em> 向设备发送请求并获得响应<em>数据</em> SerialPort sp = new SerialPort(); sp.PortName = "COM2"; sp.BaudRate = 24
C# Datagridview滚动条的问题
写了个小的程序,基本上是: 1、注册键盘中的‘↑’触发关闭Form窗口; ``` Win32.RegisterHotKey(handle, (int)HotKeyID.CloseForm, (uint)KeyModifiers.None, Keys.Up); ``` 2、在Form中拦截该消息 ``` protected override void WndProc(ref System.Windows.Forms.Message e) { if(e.Msg == 0x0312) { if((LockHotKey.HotKeyID)m.WParam == HotKeyID.CloseForm) { this.Close(); } } base.WndProc(ref e); } ``` 3、运行程序,在Form中用鼠标按住Datagridview上的滚动条,同时按下键盘上的‘↑’,这时就会弹出错误 ![图片说明](https://img-ask.csdn.net/upload/201604/07/1460019436_640418.jpg)
C#串口读取数据
用<em>串口</em>通过设备读取温度湿度光照的时候,除了要把波特率、<em>数据</em>位、<em>串口</em>、奇偶校验。停止位写出来后,还需要写什么代码通过设备来读取<em>数据</em>吗,小萌新求指教
C#上位机制作之串口接受数据(利用接受事件)
前面设计好了界面,现在就开始写代码了,首先定义一个<em>串口</em>对象.. SerialPort <em>serialport</em> = new SerialPort();//定义<em>串口</em>对象 添加<em>串口</em>扫描函数,扫描出来所有可用<em>串口</em>显示在下拉框中,同时设置接受函数 string[] ArryPort = SerialPort.GetPortNames(); comboBox1.Ite...
C#串口接收字符与数值的切换
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (!radioButton2.Checked)//判断是否选中了字符选项 { string str = serialPort1.ReadEx...
C#串口通信,串口的发送与接收,获取本机串口
SerialPort;<em>串口</em>类 1.引用命名空间:using System.IO.Ports; 2.创建对象:SerialPort com = new SerialPort(); 3.给<em>串口</em>端口与波特率属性赋值:com.PortName = &quot;COM4&quot;;                               com.BaudRate = 9600; 4.打开<em>串口</em>:com.Open(...
如何向串口发送数据,并接收串口发来的数据
#include #include #include #include HANDLE hCom = NULL;/
SerialPort.BytesToRead一直为0,可是串口通讯工具是有数据
public static string InitSerialPort() { port1.PortName = “com3” port1.BaudRate = 19200;//波特率 port1.
c# SerialPort 串口接收数据处理
在c#中,想将<em>串口</em>做成一个接口类,封装起来,但是如何将<em>串口</em>接受到的<em>数据</em>进行<em>处理</em>之后的结果返回,提供给他人使用,类似以 public bool fun1() { bool a=fales; return
c# 串口接收数据并保存
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
C# 调用SerialPort类读取和发送串口数据
简单明了的利用SerialPort类读取和发送<em>串口</em><em>数据</em>
关于串口通信,采集传感器数据问题
<em>串口</em>通过四通道电流流采集电流型传感器<em>数据</em>格式“电流=3300*/1023/150(MA)'' 这个是怎么获取的,其中代表<em>串口</em><em>数据</em>什么,例如获取到的十六进制一组<em>数据</em>FE 16 46 1D BC 00 D
基于c#的串口通信获取温湿度传感器数据
基于c#的<em>串口</em>通信获取温湿度传感器<em>数据</em>,使用单片机芯片为CC2530
谁做过 耀华 XK3190 A9 的串口开发?(读取称重数据
XK3190-A9+具有RS232/RS422(选配)/RS485(选配)串行通讯接口,可与计算机进行通讯。 1. 通讯接口采用 15 芯RS232 插头座(与大屏幕共用),其引脚定义见图2-5 中6
C# winform获取电子称数据显示在文本框中
我写了一个winform程序,获取电子称上面的重量显示在form上面的一个文本框textbox1里面,但是现在遇到了一个问题,就是如果textbox1没有获取焦点的时候,不能显示电子称上面的重量,经过
C#读取电子称串口数据,及时显示在TextBox控件
公司要求将电子称<em>串口</em><em>数据</em>与电脑<em>串口</em>相连接,实现<em>数据</em>的即时通讯,其主要用来称产品,然后计算出相应个数。以下是我写的代码,基本都是参照网上高人写的。 但是就是不能实现这个自动读取电脑称仪表<em>数据</em>的功能,总是
C# 获取地磅数据问题
本人用测试工具测试地磅如下: <em>数据</em>跳动的很快,请问这种<em>数据</em>如何解析取重量信息?
C#通过串口接收到的地磅数据解析问题
<em>接收</em>到的内容如下: 02 31 30 20 20 20 20 20 20 30 20 20 20 20 20 30 0D 02 31 30 20 20 20 20 20 20 30 20 20 20
如何用serialport串口接收发送数据
不知道我这样设置,这样读<em>数据</em>不知道哪里有问题....读不进来.这是RM417相关参数....大家给看看,或者有什么好的<em>接收</em>程序,谢谢各位了
C# serialport数据接收不全的问题?
<em>C#</em> <em>serialport</em>读取松下PLC的<em>数据</em>,用的是松下Mewtocol通讯协议,我在timer_tick事件中<em>接收</em><em>数据</em>,因要实时读取<em>数据</em>,timer设置为1毫秒,<em>数据</em><em>接收</em>时不全,代码如下: cls
SerialPort串口通信(二)
简化版的<em>串口</em>通信,非常的简单,看了以后,会很简洁,很清晰,本人亲测,这个博客的例子完美运行 好吧,来看看如何使用SerialPort<em>串口</em>通信 1.首先我们来看一下,运行的效果图: 2.添加依赖,在app下的builder.gradle //gogle serialPort implementation 'com.aill:AndroidSerialPort:1.0.8' ...
c# 用serialport接收数据,长时间运行, 接收数据丢失
c# 用<em>serialport</em><em>接收</em><em>数据</em>,<em>数据</em>量比较大,1秒钟可达5K以上字节,刚开始没问题,运行十几分钟以后,发现<em>接收</em><em>数据</em>有丢失的情况,这问题调了一周了,不同的方法,仍然没有解决! <em>处理</em>过程是这样的:
C# serialport 串口发送与接收数据操作类
对<em>C#</em>的<em>serialport</em>类功能进行了总结,给出了发送,<em>接收</em><em>数据</em>的完整操作类代码,可直接运用该类进行c#的<em>串口</em><em>数据</em>操作
SerialPort接收数据的问题
发送方代码: btnSend.Click += new EventHandler(btnSend_Click); void btnSend_Click(object sender, EventArgs
C#如何处理串口数据接收线程与界面显示事件
写了一个通过<em>串口</em>实现上下位机交互的<em>软件</em>。 但是在<em>数据</em>传输这里遇到了麻烦,发送和接受的<em>数据</em>报文是根据协议制定的。 协议: 报头## + 内容 + CRC16校验位 因为一个报文可能被分次发送过来,所以采
c#串口数据接收处理大纲
c#<em>串口</em><em>数据</em><em>接收</em><em>处理</em>大纲
C#处理串口数据的时候遇到一个问题
初学<em>C#</em>。。做一个向<em>串口</em>发送<em>数据</em>,并根据返回<em>数据</em>解析继电器开合 //<em>接收</em> public void sErialport_receive(object sender, System.IO.Ports.S
c# 串口所有数据接收串口数据全部处理
现在楼主<em>接收</em>的是后面的<em>数据</em>而前面的<em>数据</em>消失了,应该就是你在事件中<em>处理</em><em>数据</em>过慢导致新的<em>串口</em><em>数据</em>往缓存区中发送把你原有缓存区的<em>数据</em>冲掉了。在<em>接收</em>事件中就不应该去做<em>数据</em>的<em>处理</em>特别是大循环的语句会消耗你机器的性能和时间,定义一个缓存区只做<em>数据</em>的<em>接收</em>,在另外开启一个线程来做<em>数据</em>的<em>处理</em>,比如你所需要的字符串的拼接。而微软封装串行口的<em>接收</em><em>数据</em>事件是另外开了一个异步线程来做的<em>处理</em>。 int...
c#写串口收发工具,收到数据要开线程做数据处理吗?
我完全不懂c#,在网上找到一些关于c#的<em>串口</em>收发工具的代码,然后改了一下,自己也做了一个c#的<em>串口</em>收发工具,使用的代码大概是这样的: SerialPort sp = new SerialPort();
C# 串口的初始化 以及通过串口的收发数据
<em>C#</em> <em>串口</em>的初始化 以及通过<em>串口</em>的收发<em>数据</em> <em>C#</em> <em>串口</em>的初始化 以及通过<em>串口</em>的收发<em>数据</em>
C#实现串口操作(包括读写串口,显示数据
<em>C#</em>实现打开<em>串口</em>,关闭<em>串口</em>,利用<em>串口</em><em>接收</em>和发送<em>数据</em>,并且能把<em>数据</em>实时显示在屏幕上,实现世博功能!
C#串口通信数据接收处理
本源码在VS2013平台上,使用<em>C#</em>编程,实现了多<em>串口</em>通信的<em>数据</em><em>接收</em><em>处理</em>,实用性强,代码简洁,内置使用说明
C#串口SerialPort使用线程接收数据不完整问题
最近在做一个<em>串口</em>SerialPort使用线程<em>接收</em><em>数据</em>,但是总是出现<em>接收</em><em>数据</em>不完整问题,一部分<em>数据</em>丢失。而使用<em>串口</em>事件<em>接收</em><em>数据</em>是正常的,请问这是怎么回事?
C# 串口 SerialPort读取串口数据回显到文本框(显示不出来?)
求教: 环境VS2010,RS-232,通过SerialPort读取COM1口<em>数据</em>,回显到文本框中,但是无法获取回显<em>数据</em>。 而通过<em>串口</em>调试工具,可以读取到发送到<em>串口</em>的值? 源码:
C#串口接收到的数据,用的事件serialPort_DataReceived,怎么才能转换为全局变量来使用?
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { int len = seria
serialport类如何判断接收到一帧数据
本人新手,刚入门.net开发几天。 在测试<em>serialport</em>类的时候,发送10个字节给程序,有时候收到2个字节,就触发了<em>接收</em>事件。 导致我收不到完整的一帧<em>数据</em>。 想知道这是什么原因?
C#的serialPort已经打开,但是接收不到数据??
使用<em>C#</em>的serialPort控件<em>串口</em>通信,单独做个小的测试程序,用<em>串口</em>助手调试,<em>接收</em>发送都没有问题,但是把这个功能放到我要编写的大程序里就只可以打开<em>串口</em>,不能<em>接收</em>到<em>数据</em>,请问这个是怎么回事,怎么解
C#中SerialPort串口控件使用之字符的接收
好久没写东西了,工作时没什么事干,也就看看书;以前就对<em>串口</em>通信感点兴趣,<em>serialport</em>控件也看了几天,想做一个类似<em>串口</em>助手的东西,由于是刚看的<em>C#</em>,很多东西都不知道,网上的SerialPort控件要不讲得不清楚,要不代码错误;所以把自己看到的学到的供大家分享! 注:我这里写的是SerialPort<em>串口</em>控件使用之字符的<em>接收</em>,用到的工具为VS2010,<em>串口</em>调试助手,VSPD(虚拟<em>串口</em>)6.9,
.NET 2.0中串口通讯类SerialPort
1。简介随着USB的流行,<em>串口</em>通讯已经应用到日常生活的很多方面了,USB是一种高速的<em>串口</em>通讯协议,USB接口非常复杂,通常被用在需要传输大量<em>数据</em><em>数据</em>的地方,如U盘、相机、打印机等。除了USB这种较为奢侈的<em>串口</em>外,在工控和嵌入式行业,大量被使用的是另一种古老的<em>串口</em>协议,RS-232<em>串口</em>。RS-232是一种非常简洁的低速<em>串口</em>通讯接口,它可以同时进行<em>数据</em><em>接收</em>和发送的工作。2。.NET 2.0对串
C# SerialPort 串口读写
<em>串口</em>发送<em>接收</em><em>数据</em>,支持大量<em>数据</em>交互
C#串口通信-向串口发送数据,同步接收返回数据
最近写<em>C#</em><em>串口</em>通信程序,系统是B/S架构。SerialPort类有一个DataReceived事件,用来<em>接收</em><em>串口</em>返回的<em>数据</em>,但这种方式在C/S架构下很好用,但B/S就不好<em>处理</em>了。所以写了一个同步模式<em>接收</em>返回<em>数据</em>的方法,不使用DataReceived事件。经过测试,可以正常使用(不支持多线程调用)。     一、Machine类     1、Machine类有一个静态变量,定义如下: pr
C# SerialPort 使用DataReceived接口利用空闲中断原理接收完整一帧数据
说明 使用SerialPort类 使用SerialPort.DataReceived <em>接收</em>事件 DataReceived事件触发无规律,不可作为一帧<em>数据</em>的判断 <em>数据</em><em>接收</em>也可使用单独一个线程轮询判断,判断更为精确,但是要完全占用一个线程,无堵塞,费资源。 欢迎补充指导 开启<em>串口</em>SerialPort mySerialPort;//本地<em>串口</em> mySerialPort = new SerialPort(co
C#SerialPort类的学习
最近频繁使用<em>串口</em>,有必要好好学习下<em>串口</em>技术。<em>C#</em>SerialPort类:1.可以看出,使用时需要引进 System.IO.Ports空间命名。2.构造函数有好几种,这个是常用的,如增加端口名(COM1,COM2等)...
C#串口类serialPort的用法!
最近由于任务需要,用到了serialPort类,在此记录重要步骤。     主要常用的属性为:     PortName    //可用的COM端口号     BaudRate    //波特率     DataBits      //<em>数据</em>位     StopBits      //停止位     Parity           //奇偶校验     BytesToRead /
C# SerialPort IO操作 支持大数据收发
支持<em>串口</em>大量<em>数据</em>读写操作,能一次性读取<em>数据</em>,通过设置超时大小控制一次读取<em>串口</em>所有<em>数据</em>。支持事件触发,异步发送<em>接收</em><em>数据</em>。附件有demo,可下载Virtual Serial Port Driver模拟<em>串口</em>
SerialPort如何读取串口数据并显示在TextBox上,多线程委托
namespace SerialPort { public partial class Form3 : Form { delegate void UpdateTextEventHandler(string text); //委托,此为重点 public static readonly string connStr = App...
急!串口开发,SerialPort接收不到数据
我这几天在做<em>串口</em>通讯的开发,使用<em>串口</em>助手能够<em>接收</em>到<em>串口</em>发送过来的<em>数据</em>,但是用SerialPort就<em>接收</em>不到<em>数据</em>。定时读取获得的是空字符串,使用DataReceived事件则不能触发。 程序如下: us
C# 串口接收数据处理线程遇到的问题求高手帮助!
<em>C#</em> <em>串口</em><em>接收</em><em>数据</em><em>处理</em>时遇到队列有值,但报错InvalidOperationException,队列为空的问题。 代码如下:private void dataProcessing() { byte[] data = new byte[2] {0,0}; float sensor_data = 0f;//用来记录转化后的<em>数据</em> //float data_high8 = 0f; int timerDraw=0; while (true) { if (dataQueue.Count >=2)//dataQueue中<em>数据</em>长度大于2时,进行<em>数据</em><em>处理</em> { lock (dataQueue) { **data[1] = (byte)dataQueue.Dequeue();** 在此处出现未<em>处理</em>InvalidOperationException 队列为空的问题 //data_high8 = data[1]; if ((data [1] &240) != 0)//如果高四位不是0,说明<em>数据</em>有误 { MessageBox.Show("<em>数据</em>错误!!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } data[0] = (byte)dataQueue.Dequeue(); sensor_data = BitConverter.ToInt16 (data, 0)*3.3f/4096f ; switch (timerDraw) { case 0: timerDraw++; addToList(sensor_data, list1, List1); break; case 1: timerDraw++; addToList(sensor_data, list2, List2); break; case 2: timerDraw++; addToList(sensor_data, list3, List3); break; case 3: timerDraw++; addToList(sensor_data, list4, List4); break; case 4: timerDraw = 0; addToList(sensor_data, list5, List5); if (List5 .Count /2==maxCount )//已<em>接收</em>完<em>数据</em> { stopTraining(); } break; } } } } } 非常感谢!!
C#中如何自动触发接收串口发来的数据
<em>C#</em>中如何自动触发<em>接收</em><em>串口</em>发来的<em>数据</em>,例如别的机器通过<em>串口</em>向我的程序发送<em>数据</em>,如何实现自动<em>接收</em>,然后通过调用发送方法回复,如果是通过socket通信,如何自动<em>接收</em>
[分享]C#串口接收数据数据接受的处理代码
最近看到很多人在问<em>串口</em>的<em>数据</em><em>处理</em>,尽管已经有人在BLOG中写的很好,但是还是看到很多人在问,所以我把我自己改的一段<em>串口</em><em>接收</em>的代码发出来供大家参考。可能有很多不好之处,大家见谅,毕竟不是做c#的。主业是
C#串口接收数据丢失,最大只能收8个字节
不知道为什么,我和单片机做通信,发送01 03 00 00 00 04 44 09 正确回复应该是01 03 08 XX XX XX XX XX XX XX XX XX XX 但是只回复了01 03
C#串口接收事件里面如何高效的解析协议
怎么做才能更加高效呢?
C#接收串口数据如何用波形图显示出来?
最近在做一个传感器上位机部分,用的<em>C#</em> 做的,做的时候遇到两个问题 1.<em>串口</em>无法<em>接收</em>信息 2.如何把接受的信息用波形图即时的表现出来 private void btnSend_Click(object
c#怎么清除串口接收数据
private void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e) { int n = comm.BytesToR
C#解决串口通信中接收数据时延迟处理与缓存处理的方法
<em>C#</em>解决<em>串口</em>通信中<em>接收</em><em>数据</em>时延迟<em>处理</em>与缓存<em>处理</em>的方法 时间:2011-1-21 14:04:29 来源:www.cnblogs.com 作者:杨少宁 - - 利用<em>串口</em>进行通信,当发送方(A)将<em>数据</em>写入<em>串口</em>后,通过无线或有线方式将<em>数据</em>传送给<em>接收</em>方(B),B通过调用<em>串口</em>读方
c#多串口多线程接收数据
因为前段时间需要用到<em>串口</em><em>接收</em><em>数据</em>,且使用的<em>串口</em>号不确定,需采用多线程的方式来实现<em>接收</em>。 创建线程: Thread thread = null; for (int i = 0; i < PortNum; i++)//根据选择的<em>串口</em>号数量创建对应数量的线程 { thread = new Thread(Text_Ru
C#串口接收数据并绘制曲线
<em>C#</em>上位机,<em>串口</em><em>接收</em>下位机的<em>数据</em>,然后以时间为横坐标,<em>接收</em><em>数据</em>为纵坐标绘制曲线,虚拟示波器,方便调试。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
delphi编程实例下载
界面编程实例,可以帮助初学者快速掌握DELPHI的编程技术,是初学者手把手学习的好材料 相关下载链接:[url=//download.csdn.net/download/cmq13/6649791?utm_source=bbsseo]//download.csdn.net/download/cmq13/6649791?utm_source=bbsseo[/url]
MT7620_LinuxAP_V2.7.1.0_V2.7.1.1_apcli_duplicate_mac_issue_20121221_patch下载
MT7620_LinuxAP_V2.7.1.0_V2.7.1.1_apcli_duplicate_mac_issue_20121221_patch 相关下载链接:[url=//download.csdn.net/download/adaer1/7622071?utm_source=bbsseo]//download.csdn.net/download/adaer1/7622071?utm_source=bbsseo[/url]
单片机控制模块单片机控制模块下载
单片机控制模块单片机控制模块单片机控制模块单片机控制模块单片机控制模块单片机控制模块 相关下载链接:[url=//download.csdn.net/download/zlfbtstt/321426?utm_source=bbsseo]//download.csdn.net/download/zlfbtstt/321426?utm_source=bbsseo[/url]
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
我们是很有底线的