前世所袭误者,可以自我更之;前世所未及者,可以自我创之。
前段时间,由于事情需要,要写一个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();
年轻的我们,加油,抵抗诱惑!