C#串口通讯

2021-04-26 15:25

阅读:458

标签:==   map   name   font   一个   串行通讯   波特   适用于   数组   

前世所袭误者,可以自我更之;前世所未及者,可以自我创之。

前段时间,由于工作需要,要写一个PC测试软件(C#)来操作单片机完成测试功能,是基于串口通讯的。当时觉得很难,现在觉得还比较简单。

关于串口:百度词条上是这样解释的:

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。

串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线)

从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

下面说说我的实现步骤,希望对初学的朋友们有一点帮助:

1,实例化SerialPort对象用于打开串口

private static SerialPort myserailport = new SerialPort();

2,初始化串口对象(就是给下面几个对象赋值)

myserialport.PortName  端口号

myserialport.BaudRate  波特率

myserialport.DataBits    数据位

myserialport.StopBits    停止位

myserialport.Parity        奇偶校验位

一般情况下有波特率和端口号就可以了

获得本机所有端口号的方法:

 RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");

 Registry对象提供了windows注册表中的根键的对象 OpenSubKey以只读的形式检索子项

 string comm[]  = keyCom.GetValueNames();     //  检索包含与此项关联的所有值名称的字符串数组。

 foreach(string cm in comm ){    //遍历端口键

      string [] Value = keyCom.GetValue(cm);

      Value数组里面就是所有的端口名称 

  }

波特率自己设 一般有  300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200 这些值

 myserialport.PortName = Value[0];

 myserialport.BaudRate  = 115200;

 myserialport.Open();

 判断 if(myserialpoer.isOpen == true){MessageBox.Show("端口已经打开","lili提示")}

 关闭 myserialport.Close(); 

 发送  myserialport.WriteLine(string str);

 接收  myserialport.ReadLine();

年轻的我们,加油,抵制诱惑!


 

 

C#串口通讯

标签:==   map   name   font   一个   串行通讯   波特   适用于   数组   

原文地址:http://www.cnblogs.com/liliyangluck/p/7891908.html


评论


亲,登录后才可以留言!