首页 > 其他 > 详细

串口调试助手

时间:2019-12-17 21:36:39      阅读:93      评论:0      收藏:0      [点我收藏+]

1 串口的初始化

设置串口的名称、波特率、数据位、校验位、停止位。

1 //获取本机所有串口的名字
2 String[] strPortName = SerialPort.GetPortNames();
3 //将本机所有串口名称赋值给cmbPort控件
4 cmbPortName.ItemsSource = strPortName;

 

 1 comPort.PortName = cmbPortName.Text;
 2 comPort.BaudRate = int.Parse(cmbBaudRate.Text);
 3 comPort.DataBits = int.Parse(cmbDataBit.Text);
 4 
 5 //奇偶校验
 6 switch (cmbPrity.SelectedIndex)
 7 {
 8     case 0:
 9         comPort.Parity = Parity.None;
10         break;
11     case 1:
12         comPort.Parity = Parity.Odd;
13         break;
14     case 2:
15         comPort.Parity = Parity.Even;
16         break;
17     default:
18         comPort.Parity = Parity.None;
19         break;
20 }
21 //停止位
22 switch (cmbStopBit.SelectedIndex)
23 {
24     case 0:
25         comPort.StopBits = StopBits.One;
26         break;
27     case 1:
28         comPort.StopBits = StopBits.Two;
29         break;
30     default:
31         comPort.StopBits = StopBits.One;
32         break;
33 }

2 打开串口

 1 comPort.Open(); 

3 关闭串口

 1 comPort.Close(); 

4 串口的发送

 1 comPort.Write(textSend.Text); //直接发送字符串

2 comPort.Write(bytes,0,str.Length); //发送字节数组  

注意:为了可以发送和显示中文,设置以下属性即可。

comPort.PortName = cmbPortName.Text;

5 串口数据的接收

 1 private void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
 2 {
 3     
 4     string strData = "";
 5     
 6     //读去缓冲区字符数量
 7     while (comPort.BytesToRead != 0)
 8     {
 9         if (!bHexSendState)     //字符发送
10         {
11             //byte[] result = new byte[comPort.ReadBufferSize];
12             //comPort.Read(result, 0, comPort.ReadBufferSize);
13             //strData = Encoding.UTF8.GetString(result);
14             
15             strData = comPort.ReadExisting() + "\n";
16             
17         }
18         else
19         {
20             byte  readBuffer = (byte)comPort.ReadByte();
21             strData = Convert.ToString(readBuffer,16).ToUpper();
22             if (strData.Length == 1)
23                 strData = strData.PadLeft(2,0);
24             strData +=  " ";
25         }
26         
27            
28         Dispatcher.Invoke(new Action(() =>
29         {
30             textRecv.AppendText(strData);
31             //滚动到底部
32             textRecv.ScrollToEnd(); 
33         }));
34     }
35 }

 


串口调试助手

原文:https://www.cnblogs.com/FengHandong/p/12056684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!