我正在從PC發送一個字符'a'到MCU,並通過串行通信將其返回給PC。準確地說,它應該顯示'a',但沒有任何顯示。 我已經在超級終端上測試過,它工作正常。串口(winAPI):無法接收任何數據
如果我的代碼有任何問題,請指出。謝謝。
它發送一個字符我工作得很好所以我只發佈我的代碼的一部分。
DWORD dwCommModemStatus;
DWORD dwBytesTransferred;
DWORD bytesWritten;
char receivedData[2] = {0};
char data= 'a';
bool sendChar = WriteFile(hSerial,&data,1,&bytesWritten,NULL);
if(!sendChar){
printf("WriteFile ERROR\n");
}
SetCommMask(hSerial,EV_RXCHAR);
WaitCommEvent(hSerial, &dwCommModemStatus,0);
if(dwCommModemStatus & EV_RXCHAR){
if(!ReadFile(hSerial,receivedData,1,&dwBytesTransferred,0)){
printf("ReadFile Error\n");
}else{
printf("%c\n",receivedData[0]);
}
}
WaitCommEvent返回TRUE? – patriiice
串行端口設置錯誤是典型的解釋,特別是握手線。使用SysInternals的PortMon將超級終端與您的代碼進行比較。 –
對不起,延遲迴復。 patriiice - >我測試了它,它返回TRUE Hans->也許我的設置有問題。我想發佈我的整個代碼,是不是更好地創建一個新的線程? – edisonthk