C# 串口接收数据问题
delegatevoidwt(stringtxet);publicvoidtextbox(stringtext){if(textBox1.InvokeRequired){...
delegate void wt(string txet); public void textbox(string text) { if (textBox1.InvokeRequired) { wt dg = new wt(textbox); textBox1.Invoke(dg, new object[] { text }); } else { textBox1.Text =textBox1.Text + text; } } //接到数据 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try { string txt = serialPort1.ReadExisting(); textbox(txt); } catch (Exception jj) { MessageBox.Show(jj.Message.ToString()); } }
我的代码运行的结果是两个问号!下载的调试程序能接收到正确的数据。 展开
我的代码运行的结果是两个问号!下载的调试程序能接收到正确的数据。 展开
2个回答
展开全部
你发送的又不是ascii编码,应该类似于这样接收
int DataLength=serialPort1.BytesToRead;
byte[] ds=new byte[DataLength];
int len=serialPort1.Read(ds,0,DataLength);
//然后对这个byte[]中的每个byte转为十六进制显示出来就行了。
string returnStr = "";
for (int i = 0; i < len; i++)
returnStr += ds[i].ToString("X2")+ " ";
textbox(returnStr);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询