C#串口通信 serialport类

问题描述

有个C#的问题想请教,在线等!!我用C#中的serialport类做一个串口通信,遇到个问题,我查看了资料“通过调用一次serialport类中的Read()方法并不能确保所读取的数据就是完整一桢”,我现在就遇到这个问题,我用Read()方法只能得到我数据的前9个字节,后面的数据得不到,百思不得其解,望赐教!Byte[]BSendTemp={0x00,0xff,0xff,0xcc,0x01,0x01,0x02,0x40,0x00,0x44};//建立临时字节数组对象serialPort.Write(BSendTemp,0,10);//发送命令Thread.Sleep(4000);intcount=serialPort.BytesToRead;//为什么我只能读到9byte的数据,我一共有50几byte,百思不得其解byte[]BReceived=newbyte[count];serialPort.Read(BReceived,0,count);MessageBox.Show(count.ToString());

解决方案

解决方案二:
privatevoidserialPort_DataReceived(objectsender,SerialDataReceivedEventArgse){intbytes=0;StringstrMoney=String.Empty;//钱数StringstrNumber=String.Empty;//币数StringstrMoneyAndNumber=String.Empty;//钱数+币数bytes=serialPort.BytesToRead;//读取串口中的数据byte[]buffer=newbyte[bytes];//转换成数组for(inti=0;i<bytes;i++){buffer[i]=(byte)(serialPort.ReadByte());//循环遍历每个元素}if(bytes!=0)//判断数组是否为0{............}

时间: 2024-08-05 02:31:54

C#串口通信 serialport类的相关文章

java串口通信

java串口通信API说明 java串口通信 2008/09/22 20:24 java串口通信API说明 java串口通信    Java提供了 CommunicationAPI(包含于javax.comm包中)用于通过与机器无关的方式,控制各种外部设备.Communications API,是标准的Java的扩展部分,它在JavaAPI中是没有附带的.因此,必须先在SUN公司网站的Java站点(www.java.sun.com)上下载这个扩展类库. 1.1Communications API

串口通信-Java通过得到的Socket流向串口发送数据

问题描述 Java通过得到的Socket流向串口发送数据 我是一个菜鸟,最近学习Java ,写了个向串口发送数据的代码,有点问题,希望各位大神给指点指点 package server; import gnu.io.CommPortIdentifier; import gnu.io.PortInUseException; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventLis

C#结合串口通信类实现串口通信源代码

mycom是串口通信类.下面是串口通讯测试程序的源代码,将mycom类放在此项目中,可以实现简单的串口通信,希望读者能通过这个程序对串口通信过程有一个初步的了解: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading; namesp

串口通信助手(龚建伟版使用cserialport类)

问题描述 串口通信助手(龚建伟版使用cserialport类) 为什么另一个串口发送汉字时比如:发送""你好""情况是这样的:ch=196 str=? 解决方案 看来的自问自答了.加一个刷新就可以了

mfc-MFC用serialport写的串口通信助手,接收的是一个字节?

问题描述 MFC用serialport写的串口通信助手,接收的是一个字节? 接收数据的处理函数OnCommunication(WPARAM ch,LPARAM port),WPARAM ch接受的是一个字节吗,如果是,怎么能变成两个字节呢,拜托大神解答下,求代码,急急急 解决方案 不是,是缓冲区中所有的数据. 解决方案二: ch指向这个数据的首地址.http://wenku.baidu.com/link?url=P94cAhiJrnGH1ShHNnSAiGFU7MqUuQWHvuFP6WRxhN

程序-多串口多线程工业控制实现(SerialPort类)实例下载

问题描述 多串口多线程工业控制实现(SerialPort类)实例下载 多串口多线程工业控制实现(SerialPort类)这篇文章下面链接了程序实例,请问有人有下载好的么?我这边一直不能下载 解决方案 08年的时候下载成功过

多串口多线程工业控制实现(SerialPort类)实例下载

问题描述 多串口多线程工业控制实现(SerialPort类)实例下载 http://blog.csdn.net/paobo/article/details/1780582# 文章下面有实例下载,有人下载成功么?我这边一直不能下载 解决方案 我记得08年下载成功过过, 解决方案二: http://blog.csdn.net/liquanhai/article/details/6941574 这里有

c# 串口通信 线程-C# SerialPort 串口通信多线程问题

问题描述 C# SerialPort 串口通信多线程问题 编程新手,想C# SerialPort实现串口通信,写的程序大概这样一个结构.发送一个数据后,要求收到下位机回复,超时发送下一个数据.要加一个发送和接收的线程,是加在主程序里面吗?大体的结构应该是怎么样的?求大神帮助!O(∩_∩)O谢谢! class SendAndReceive { SerialPort sp = new SerialPort(); public void SearchSet()//检测有哪些端口 public void

关于serialport 串口通信问题

问题描述 这是我的源代码,参考的网上的程序:但是可以成功发送数据,但是不能接收到数据(使用串口模拟软件可以显示接收到数据,但是是乱码),大家帮忙看下,感谢!代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks