чтобы получить действительно простую «оболочку» с буферизацией строки (буферизация строки означает обработку только после «ввода» или «\ n») в микроконтроллере, я бы сделал что-то вроде этого (в середине основного цикла:
char * p = my_read_buffer; //this is in the initialization, rather than the main loop
if (byte_from_my_uart_avaliable()) {
*p = read_uart_byte();
if (*p == '\n') {
process_input(my_read_buffer);
p = my_read_buffer; //reset the linebuffer
}
else
p++;
}
Тогда секретом будет функция process_input()
, в которой вы будете анализировать команды и их параметры, чтобы вы могли вызывать соответствующие функции для их обработки.
Это просто идея далеко не закончена, вам нужно установить ограничение на число символов, полученных до '\n'
, чтобы предотвратить переполнение.