标签:== 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();
年轻的我们,加油,抵制诱惑!
标签:== map name font 一个 串行通讯 波特 适用于 数组
原文地址:http://www.cnblogs.com/liliyangluck/p/7891908.html