日期:2014-05-18  浏览次数:21045 次

串口打开时,的轮询问题?
假设,在不知道设备用的串口号和波特率的情况下
如何轮询来确定当前用的串口号和波特率?

初始化如下:
 列出当前机器上的所有串口,并添加了几个波特率值,其中默认是 115200
C# code
string[] ports = sl.ports;
Array.Sort(ports);
comboPortName.Items.AddRange(ports);
comboPortName.SelectedIndex = comboPortName.Items.Count > 0 ? 0 : -1;
comboBaudrate.SelectedIndex = comboBaudrate.Items.IndexOf("115200");


打开串口动作:

C# code

comm.PortName(comboPortName.Text);
 comm.BaudRate(int.Parse(comboBaudrate.Text));
comm.Open();


 在上面打开串口操作时,如何处理呢?
 比如当前识别了2个串口了 COM1 和 COM2
 波特率是 9600 19200 57600 115200
 
 应该是先是: COM1 分别 和上面四个波特率组合,打不开时
 换作:COM2 和4个波特率组合

 若都打不开,应该是为链接串口线。。。

 如何搞

------解决方案--------------------
波特率跟串口本身没关系,和你的上游设备有关系,当你得到串口数组后,你就遍历这个数组,然后对每个数组应用波特率数组中的元素
------解决方案--------------------
我都是用超级终端试好了波特率和串口号才用程序打开的