c# 读取串口数据的显示
stringserialReadString;privatevoidserialPort1_DataReceived(objectsender,System.IO.Por...
string serialReadString;
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialReadString=serialPort1.ReadExisting();
this.rTB_receive.Invoke
(
new MethodInvoker
(delegate
{
this.rTB_receive.AppendText(serialReadString);
}
)
);
}
rTB_receive是textbox
比如说我发送的是16进制的132 但是我显示到textbox上的却是ascll码 132超出了ascll码的值范围 就乱码了比如说我发送的是16进制的132 展开
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialReadString=serialPort1.ReadExisting();
this.rTB_receive.Invoke
(
new MethodInvoker
(delegate
{
this.rTB_receive.AppendText(serialReadString);
}
)
);
}
rTB_receive是textbox
比如说我发送的是16进制的132 但是我显示到textbox上的却是ascll码 132超出了ascll码的值范围 就乱码了比如说我发送的是16进制的132 展开
3个回答
展开全部
建议用SerialPort.Read 这个方法,这个是导入到一个byte数组,后面怎么显示你可以再处理。
ReadExisting返回的是字符串,但是很可能发送端和接收端要处理的字符编码不同,也会显示乱码。
ReadExisting返回的是字符串,但是很可能发送端和接收端要处理的字符编码不同,也会显示乱码。
更多追问追答
追问
Read方法不是读一个字符么
追答
public int Read(
byte[] buffer,
int offset,
int count
)
不是啊,这是一个数组啊,详细看下 msdn吧。
参数
buffer
类型:array[]()[]
将输入写入到其中的字节数组。
offset
类型:System..::.Int32
缓冲区数组中开始写入的偏移量。
count
类型:System..::.Int32
要读取的字节数。
返回值
类型:System..::.Int32
读取的字节数。
来自:求助得到的回答
展开全部
读取的时候用读byte[]的方法读
追问
能不能说的详细点呢 跪求
追答
int len = this.serialPort1.ReadBufferSize;
byte[] buf = new byte[len];
this.serialPort1.Read(buf,0,len);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询