串口的小问题,我搞了几天了都不知道错在哪里?
当我启动程序后,程序默认打开第一个串口,当我再运行程序一遍时,也是打开的第一个串口,明明我判断了,可这时就时出错。如果是打开的是不同的串口,可以互相进行通讯,一切正常。
初始化OnInitDialog()函数的内容如下:
m_ctrlComm.SetCommPort (Com);//指定串口号
if(m_ctrlComm.GetPortOpen ())
{
m_stateBar.SetWindowText ("初始化失败,请重新设置!");
AfxMessageBox("串口已经打开!");
}
else
{
m_ctrlComm.SetPortOpen (TRUE);//打开端口
setStateBar();
m_ctrlComm.SetInputMode (1);//以二进制读取数据
m_ctrlComm.SetRThreshold (1);//只要有一个或大于一个数据,便触发OnComm函数
m_ctrlComm.SetInputLen (0);//为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。
m_ctrlComm.GetInput ();//预读,清空缓冲区
}
我跟踪程序运行时,第二遍运行时也是打开的是第一个串口m_ctrlComm.GetPortOpen ()输出是0,但我前一个程序是打开的是第一个串口啊,请问错在什么地方?应该如何改正