700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C# 串口助手中英文显示问题

C# 串口助手中英文显示问题

时间:2023-07-05 02:41:27

相关推荐

C# 串口助手中英文显示问题

才开始学C#,照着网上的Demo一步一步写了个串口助手,但是没有办法显示中文,因为C#默认的编码和单片机上不一样,单片机上用的是GBK编码,所以这里需要做一点转换。

直接使用writeLine需要传入的是str,所以这里需要改成write函数。

发送代码如下:

private void button3_Click(object sender, EventArgs e){if (sp.IsOpen){//sp.WriteLine(textBox2.Text);//string str = "啊";string str = textBox2.Text;byte[] byteArray = Encoding.Default.GetBytes(str);sp.Write(byteArray, 0, byteArray.Length);}

接收也是一样,ReadExisting返回的是string,这里直接用byte就可以了。

private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//串口数据接收事件{byte[] byteArray = new byte[1024];int len=sp.Read(byteArray,0,1024);//字符串方式读string str = System.Text.Encoding.Default.GetString(byteArray);textBox3.Text = str.Length.ToString();textBox1.AppendText(str);//添加内容}

不过需要注意的是,按照我这种写法,经过测试,有个小不足。

比如第一次发了1500个字节,只会读1024个字节,并将那1024字节从缓冲区清除,缓冲区还剩476个字节。

第二次再发100个字节来,会读到576个字节。缓冲区清空。

实际测试通过两个ch340模块对接,效果如下图。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。