реклама на сайте
подробности

 
 
> Прикрутить программный FIFO для UART LPC17XX, Как лаконично организовать?
kt368
сообщение Oct 11 2013, 21:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 13-10-10
Из: Киев
Пользователь №: 60 135



Здравствуйте! Вывожу в UART с помощью printf(), предварительно подправив Retarget.c, в функцию fputc() внес следующее:
Код
int fputc(int c, FILE *f) {
    UART_SendByte(LPC_UART0, c);
    return (c);}
Когда я предаю по UART длинные строки при помощи printf, то реально передаётся только первая часть строки, это по-идее происходит из-за наличия в модуле UART 16-и байтового аппаратного FIFO. Хочу подправить функцию fputc(), введя в неё программный FIFO, дабы иметь возможность передавать одной командой printf() большие строки. Можно, конечно, ввести в fputc() проверку освобождения аппаратного FIFO, но тогда процессор будет тратить такты впустую, чего не хочется. Подскажите, как бы его так сделать, чтобы между printf() и модулем UART'a был программный FIFO, и в то же время этот FIFO со как-то освобождался, то-ли по прерыванию от таймера, то-ли ... Как правильнее это реализовать?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016