Я тестирую связь через последовательный порт, соединяя выводы COM-порта RD и TD.COM-порт был инициализирован до выполнения приведенного ниже кода.
CString cs_Send = "F: 5000000 Hz, SF: 1.0, Phase: 10, Position: 50, on sample 1";
BOOL bWriteRC = false;
BOOL bReadRC = false;
DWORD iBytesWritten = 0;
char readBuffer[256] = {"\0"};
DWORD read;
bWriteRC = WriteFile(hPort,cs_Send.GetBuffer(10),cs_Send.GetLength(),&iBytesWritten,NULL);
**Sleep(1000);// Thanks for the advice!!! this Sleep() will fix this error.**
bReadRC = ReadFile(hPort,readBuffer,sizeof(readBuffer),&read,NULL);
if(bWriteRC)
{
if(bReadRC)
{
AfxMessageBox(readBuffer, MB_OK);
}
}
bWriteRC и bReadRC всегда возвращают true.Но первое сообщение совершенно пустое.И если я запускаю это более двух раз, каждое сообщение после 1-го точно совпадает с тем, что я отправил.Интересно, почему первый всегда пуст?