有一关于串口通信的题目,在寝室闲来无事考虑用代码进行实现。
因为考虑到以GUI的方式呈现,所会的语言仅仅包括C/C++、C#以及少量python【非常的惭愧,大学啥也没学会 = =】
由于以前用过C#做过一些小工具,因此选用该语言进行实现。
本次选用的串口为RS-232,其电气特性参考ELA(美国电子工业协会)的相关文档。
-----------------------------------------
在进行代码实现的时候,需要先了解关于串口的基本参数。
1.波特率
2.停止位
3.数据位
4.奇偶校验方式
本次选用的最常规的设置参数:即波特率9600 停止位1,数据位8,不适用校验方式(None)
在进行代码编写之前,先分析该项目所需要的考虑的功能。
1.能够检索计算机的串口,并且对不同串口进行操作。
2.能过通过串口发送和接受信息。
因为只考虑2个基本功能,因此本次操作较为简单,只是单纯的实现串口通信模拟以及记录一些常见的问题。
整个软件的UI设计如下:
其中,在该软件启动时,能够加载计算机上的串口数目,也就是需要对串口进行初始化:
private void IniPort()
{
string[] str = SerialPort.GetPortNames();
if (str.Length == 0)
{
MessageBox.Show("本计算机没有串口");
return;
}//检查串口
foreach (string i in str)
{
cbSerial.Items.Add(i);
}//将获取的串口添加
cbSerial.SelectedIndex = 0;//设置默认选项
}//获取串口
通过system.IO.Ports所包含的函数SerialPort.GerPortNames进行串口获取,并将其放入待选列表(cbSerial),该函数运行在Form1_Load中&#x