最近,小白尝试学习使用C#构建一个上位机,因此先以简单的串口通信上位机入手,参考了各种网上资源,最终以介个博主的内容作为模板,进行上位机的构建。学习中也是遇到了许多问题。
问题一:收发机制不熟悉,学习了博主的博客后,豁然开朗;
问题二:使用VS2019实现中,发现当发数据加上时间戳后,老是每次只能接收一个字节。然后找了好久的问题。。。。。。。。。。。。。。。。。。。。
无意中发现,使用波特率为9600时,并没有出现这个现象。怀疑是以前的波特率是1200,传输数据速度太慢。于是在网上查阅资料后,在接收部分加一个延时System.Threading.Thread.Sleep(100);就好了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
先贴接收和发送的代码~后期还要修改调试
private void SerialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.Threading.Thread.Sleep(100);
int num = serialPort1.BytesToRead; //获取接收缓冲区中的字节数
byte[] received_buf = new byte[num]; //声明一个大小为num的字节数据用于存放读出的byte型数据
receive_count += num; //接收字节计数变量增加nun
serialPort1.Read(received_buf, 0, num); //读取接收缓冲区中num个字节到byte数组中
sb.Clear(); //防止出错,首先清空字符串构造器
if (radi