110,534
社区成员
发帖
与我相关
我的任务
分享
SerialPort sp = new SerialPort(); //声明一个串口类
private void button1_Click(object sender, EventArgs e)
{
if (sp.IsOpen)
{
sp.Close();
}
sp = new SerialPort();
sp.PortName = "COM11";
sp.BaudRate = 57600;
sp.Open();//打开串口
}
private void button2_Click(object sender, EventArgs e)
{
byte[] bytes = new byte[textBox1.Text.Length / 2];
for (int i = 0; i < textBox1.Text.Length; i += 2)
{
byte b = Convert.ToByte(textBox1.Text.Substring(i, 2), 16);
bytes[i / 2] = b;
}
sp.Write(bytes,0,10);//往串口写数据(0代表偏移量,亦即数组的起始地址;10代表发送的字节数)
sp.Encoding = System.Text.Encoding.Unicode;
string receive = sp.ReadExisting(); //接收串口数据
textBox2.Text = receive;
}
似乎可以打开串口了,然后我输入的数据也好像转换成16进制了.但是模块返回的应该是一串16进制数,但是在我的文本框里显示的却是乱码.?应该怎么改