一个串口程序在实际调试中出现错误,解决者加分。
一个用到串口空间的程序在编译时没事,串口没有接设备时运行时也没事,但接上设备后运行,初始化和打开串口就出现断言错误,请问这是什么原因?下面时串口初始化代码?请高手赐教。
bool CCtrfromView::ComConnet()
{
m_wndCOM1.SetCommPort(m_nComPort);//端口设置
m_wndCOM1.SetSettings(m_szBuld+",n,"+m_szBitnum+","+m_szStopBit); //设置波特率,奇偶校验,数据位,停止位
m_wndCOM1.SetInBufferSize(m_nRecBuff); //接收缓冲区
m_wndCOM1.SetOutBufferSize(m_nSendBuff);//发送缓冲区
m_wndCOM1.SetRThreshold(1); //设置comEvReceive ,在产生ONCOMM事件之前接收字符的个数
m_wndCOM1.SetSThreshold(0); //设置comEvSend,产生在ONCOMM事件之前,0时不产生发送事件,1时缓冲区为空有消息
m_wndCOM1.SetInputLen(1); //设置input方法从缓冲区一次读入的字符个数,0时为全部
if(!m_wndCOM1.GetPortOpen())//如果串口没有打开则打开
{
m_wndCOM1.SetPortOpen(TRUE);//打开串口
m_pThread = AfxBeginThread(ThreadProc,this);//启动发送请求信号的辅助线程
}
else
AfxMessageBox("您已经打开该端口,或该端口正在给其他程序运行!");
m_wndCOM1.GetInput(); //先预读缓冲区以清除残留数据
return true;
}