用微软的MSCOMCTL,对下位机发数据...
先波特率为19200,发一个数据 再波特率为2400,发一次数据,
收数据时却很怪, 如果不设中断的话,,m_ctrlComm.GetCommEvent()都是==3或者==4没有一次是等于2的.
但若设了中断后就会正常,也就是m_ctrlComm.GetCommEvent()==2.
请高手指点......顺便问一句,==3和==4是什么事件.?
先波特率为19200,发一个数据 再波特率为2400,发一次数据,
收数据时却很怪, 如果不设中断的话,,m_ctrlComm.GetCommEvent()都是==3或者==4没有一次是等于2的.
但若设了中断后就会正常,也就是m_ctrlComm.GetCommEvent()==2.
请高手指点......顺便问一句,==3和==4是什么事件.?
顺便问一句,==3和==4是什么事件.?
A:
#define comEvSend 1 //发送事件。
#define comEvReceive 2 //接收事件。
#define comEvCTS 3 //clear-to-send //线变化。
#define comEvDSR 4 //data-set ready //线变化。
#define comEvCD 5 //carrier detect //线变化。
#define comEvRing 6 //振铃检测。
#define comEvEOF 7 //文件结束。
{
case 1: // vbMSCommEvSend:
"Sending"
case 2: // vbMSCommEvReceive:
"Receiving"
case 3: // vbMSCommEvCTS:
"Change in CTS Detected"
case 4: // vbMSCommEvDSR:
"Change in DSR Detected"
case 5: // vbMSCommEvCD:
"Change in CD Detected"
case 6: // vbMSCommEvRing:
"Phone is Ringing"
case 7: // vbMSCommEvEOF:
"End of File Detected"
case 1001: // vbMSCommErBreak:
"Break Received"
case 1002: // vbMSCommErCTSTO:
"CTS Timeout"
case 1003: // vbMSCommErDSRTO:
"DSR Timeout"
case 1004: // vbMSCommErFrame:
"Framing Error"
case 1006: // vbMSCommErOverrun:
"Overrun Error"
case 1007: // vbMSCommErCDTO:
"Carrier Detect Timeout"
case 1008: // vbMSCommErRxOver:
"Receive Buffer Overflow"
case 1009: // vbMSCommErRxParity:
"Parity Error"
case 1010: // vbMSCommErTxFull:
"Transmit Buffer Full"
}