Вверх ↑
Разработчик
Ответов: 26170
Рейтинг: 2127
#1: 2014-02-05 14:56:45 ЛС | профиль | цитата
Леонид писал(а):
а если запись не получилась, то символ "13h"

Скорее, не не получилась, а не успевает, переполняется буфер, вот он и шлет сигнал XOFF, типа -- тормозни, я обработаю, что есть, а после освобождения буфера шлет XON -- можешь продолжать слать
------------ Дoбавленo в 14.56:
Я внимательно посмотрел компонент ComAsync и нашел вот это. Видимо, ТС с ним не до конца разобрался
XonXoffIn=Использовать управление потоком СТАРТ-СИГНАЛА / СТОП-СИГНАЛА в течение приема данных портом. При True порт передает символ XoffChar, когда в приемном буфер переполнен, и XonChar, когда в приемном буфере остается менее XonLim символов|14|1|True,False
XonXoffOut=Использовать управление потоком СТАРТ-СИГНАЛА / СТОП-СИГНАЛА в течение передачи данных портом. Если это поле равно TRUE, то передача останавливается при приеме символа XoffChar, и возобновляется при приеме символа XonChar|14|1|True,False

Все это должно работать автоматически, на уровне контроллера UART. Если надо ограничить передачу от программы к контроллеру, то использовать надо XonXoffOut=True. Программе должно быть сугубо деревянно на протокол обмена, все должно работать на аппаратном уровне через буфер UART. Программа просто должна писать в это буфер и не заморачиваться, все должен будет разрулить контроллер UART


карма: 22

0