ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
370666 Топик полностью
fk0, легенда (23.11.2012 16:05, просмотров: 69) ответил aps на Теряются данные при приеме по прерываниям в UART1 LPC1778 под управлением FreeRTOS.
Где-то ошибка в алгоритме работы. После получения прерывания, типично, нужно while (fifo-не-пуст && свой-буфер-не-полон) взять-байтик-и-положить-в-свой-буфер. Условие "fifo-не-пуст" проверяется соответствующим битом в SFR (а не флагом прерывания и т.п.), свой-буфер-не-полон подразумевает наличие циклического буфера, такого размера, чтоб данные не терялись, пока программа не соизволит из него считать функцией вроде read() вызываемой из fgets(), например. Типично 200..2000 Байт при скорости до 115200.
[ZX]