Я использую MBED (онлайн-библиотеки IDE &) для моего приложения с хост-панелью NUCLEO-411RE и 4D Systems сенсорным дисплеем, подключенным посредством полнодуплексной последовательной связи. Я могу успешно отправлять данные с хоста для отображения без ошибок. Однако при отправке данных с дисплея обратно на хост я теряю данные. Сокращение бода до 9600 не решает проблему.MBED Последовательные данные по отбрасыванию
Хост-процессор остается в супер-цикле с первым действием, чтобы проверить, отправляет ли ЖКИ последовательные данные (lcd4d.readable()). Хост затем получает по одному символу за раз (lcd4D.getc()), echos его на ПК через usb (pc.printf (& recChar)) и выполняет некоторую дополнительную обработку.
Я также контролирую вывод получателя физического хоста на отдельной сессии терминала. Используя это, я уверен, что ЖК-дисплей правильно отправляет данные, однако эти данные не принимаются и правильно отражены хост-процессором (эхо на ПК используется только для целей отладки).
Обратитесь к супер кода петли фрагменту:
do {
if (lcd4D.readable()) {
recChar = lcd4D.getc();
pc.printf(&recChar);
lcd4D_intr_Rx();
}
Также см прикрепленной трафаретной печати, показывающему концевому влево PC эхо (потери данных) и концевой правые аппаратные контактного монитора (подтверждающие данные, отправленные правильно).
Реализация прерывания SerialRX также не помогает в случае потери данных.
Спасибо за любые предложения; У меня нет идей.
Вы пытались включить управление потоком на последовательных линиях связи? –