Почему SetCommState записывает три байта в последовательный порт? - PullRequest
0 голосов
/ 26 марта 2020

Я работаю с C ++ и Arduino через последовательный порт. Я могу записать байты, но заметил, что когда я настраиваю свои настройки DCB и использую SetCommState(m_hComm, &m_dcb), он записывает три байта, в частности 11110000 11110000 11110000, в Arduino. Почему это происходит?

Вот мой код, который я использую для установки DCB:

HANDLE m_hComm = CreateFile("COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
m_dcb.DCBlength = sizeof(m_dcb);
m_dcb.BaudRate = CBR_115200;
m_dcb.ByteSize = 8;
m_dcb.StopBits = ONESTOPBIT;
m_dcb.Parity = NOPARITY;
SetCommState(m_hComm, &m_dcb);

Документацию для SetCommState можно найти на веб-сайте Microsoft * * 1013

1 Ответ

0 голосов
/ 02 апреля 2020

Я понял, что это происходит, когда baudRate - около 50 000. Я нашел других людей, у которых была эта проблема, и нет ответа для них. Один из них предположил, что это может быть начальный байт, отправленный или полученный с другой скоростью передачи.

Несмотря на это, я установил его, установив скорость передачи ниже 50 000.

...