rpi_micro_examples/uart.c

36 lines
784 B
C

#include "uart.h"
#include "hardware/uart.h"
bool is_whitespace(char character) {
switch (character) {
case ' ' :
case '\n' :
case '\t' :
return true;
default :
return false;
}
}
void read_word(uart_inst_t *uart, char *buffer, int buffersize, bool *eol) {
for (uint i = 0; i < (buffersize - 1); ++i) {
buffer[i] = uart_getc(uart);
if (is_whitespace(buffer[i])) {
buffer[i + 1] = '\0';
}
}
char last_char;
do {
last_char = uart_getc(uart);
} while (is_whitespace(last_char));
buffer[buffersize - 1] = '\0';
}
void finish_line(uart_inst_t *uart) {
char last_char;
do {
last_char = uart_getc(uart);
} while (last_char != '\n');
}