一、可能需要的软件:
1、虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯。

2、友善串口调试助手,用来发送、读取数据。

二、思路
1、查询本机所有的串口

2、判断需要的串口是否存在本机的串口中

3、设置串口的参数,如波特率、奇偶校验等。

4、打开串口,

5、通过串口读取数据,处理数据

6、关闭当前窗口时,将串口一并关闭。

7、可以写一个定时器,来循环执行1、2两步,并判断串口是否打开,以保持串口通讯正常。

三,代码

1、查询本机所有的串口

 /// <summary>
        /// 获取本机串口列表
        /// </summary>
        /// <param name="isUseReg"></param>
        /// <returns></returns>
        private List<string> GetComlist(bool isUseReg)
        {
            List<string> list = new List<string>();
            try
            {
                if (isUseReg)
                {
                    RegistryKey RootKey = Registry.LocalMachine;
                    RegistryKey Comkey = RootKey.OpenSubKey(@"HARDWARE\DEVICEMAP\SERIALCOMM");

                    String[] ComNames = Comkey.GetValueNames();

                    foreach (String ComNamekey in ComNames)
                    {
                        string TemS = Comkey.GetValue(ComNamekey).ToString();
                        list.Add(TemS);
                    }
                }
                else
                {
                    foreach (string com in SerialPort.GetPortNames())  //自动获取串行口名称  
                        list.Add(com);
                }
            }
            catch
            {
                MessageBox.Show("串行端口检查异常!", "提示信息");
                // System.Environment.Exit(0); //彻底退出应用程序   
            }
            return list;
        }

2、判断需要的串口是否存在本机的串口中

/// <summary>
        /// 判断是否存在当前串口
        /// </summary>
        private void StartSerialPortMonitor()
        {
            List<string> comList = GetComlist(false); //首先获取本机关联的串行端口列表     
            if (comList.Count == 0)
            {
                MessageBox.Show("当前设备不存在串行端口!", "提示信息");
                // System.Environment.Exit(0); //彻底退出应用程序   
            }
            else
            {
                string targetCOMPort = "COM8";
                //判断串口列表中是否存在目标串行端口
                if (!comList.Contains(targetCOMPort))
                {
                    MessageBox.Show("提示信息", "当前设备不存在配置的串行端口!");
                    //System.Environment.Exit(0); //彻底退出应用程序   
                }
            }
        }

3、设置串口的参数,如波特率、奇偶校验等。

首先定义字段:

03-22 21:16