zpxc.net
当前位置:首页 >> C# 串口数据发送问题 >>

C# 串口数据发送问题

用C#自带的串口控件(serialPort)的DataReceived方法,一个串口收发数据就用一个控件,分别对应着一个方法。如: private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(25);//这行是设定读取间...

首先确定接收的数据是不是对的,再说转换问题,数据有高低位不能直接tostring

public static byte[] HexStringToByteArray(string s) { s = s.Replace(" ", ""); byte[] buffer = new byte[s.Length / 2]; for (int i = 0; i < s.Length; i += 2) { buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16); } retur...

我给你写到一个类里了;public class ComPort{//串口通讯对象SerialPort taxPort;//端口号默认是COM1private string portName = "COM1";//波特率默认是9600private int baudRate = 115200;//接收超时时间默认为1000private double timeOut = 100...

bin文件读取直接用streamRead类读取即可 串口发送有现成的SerialPort类,SerialPort.Write方法来发送读取得数据。注册DataReceived事件负责接收回复。定义一个bool变量bSendState。每次write后,bSendState置为true,然后使用循环,等待bSendSta...

要不你在那个循环里面 加一个休眠吧 再追踪一下 Thread.Sleep(100); 其它: 建议你用工具跟踪一下,看什么情况下回发送失败,是数据没有发送成功还是发出去了没有接收

将要发送的命令添加到List中,开一个线程去依次发次List中的命令。 设置一个标志,发送后将标志IsReceived设置为False,然后循环判断该标志的状态,直到变为True即接收到有效数据,或者时间超过一定后还为False视为接收出错或者超时。 在Serialp...

用serialport发 间隔时间就写个延时的函数就可以了哇 public static void Delay(int DelayTime = 2000) { int time = Environment.TickCount; while (true) { if (Environment.TickCount - time >= DelayTime) { break; } Application.DoEvents(...

你发送的又不是ascii编码,应该类似于这样接收 int DataLength=serialPort1.BytesToRead;byte[] ds=new byte[DataLength];int len=serialPort1.Read(ds,0,DataLength);//然后对这个byte[]中的每个byte转为十六进制显示出来就行了。string return...

网站首页 | 网站地图
All rights reserved Powered by www.zpxc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com