2016-09-07 6 views
1

Я использую 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 также не помогает в случае потери данных.

Спасибо за любые предложения; У меня нет идей. enter image description here

ответ

1

Я решил проблему. Проблема заключалась в том, что хост-процессор должен был реагировать достаточно быстро на полученные последовательные данные. Я в основном реализовал быстрый последовательный буфер приема и обеспечил буферизацию полученных символов сразу после прерывания.

+0

Вы пытались включить управление потоком на последовательных линиях связи? –

 Смежные вопросы

  • Нет связанных вопросов^_^