#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"
#include "hardware/gpio.h"
#define UART0_TX_PIN 0
#define UART0_RX_PIN 1
#define UART1_TX_PIN 8
#define UART1_RX_PIN 9
// Função para limpar o buffer de transmissão da UART
void uart_flush_tx(uart_inst_t *uart) {
while (!uart_is_writable(uart)) {
tight_loop_contents();
}
}
int main() {
// Inicializa a stdio para usar o console
stdio_init_all();
// Inicializa a UART0
uart_init(uart0, 115200);
gpio_set_function(UART0_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART0_RX_PIN, GPIO_FUNC_UART);
// Inicializa a UART1
uart_init(uart1, 115200);
gpio_set_function(UART1_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART1_RX_PIN, GPIO_FUNC_UART);
while (true) {
char received_char;
// Lê um caractere do console
printf("Digite um caractere: ");
uart_flush_tx(uart0);
// Limpa o buffer de transmissão da UART0 após o printf
scanf("%c", &received_char); // REcebe o valor da consola
uart_putc(uart0, received_char);
// Transmite o caractere da UART0 para a UART1
char echoed_char = uart_getc(uart1);
// Exibe o caractere recebido no console
printf("Caractere recebido: %c\n", echoed_char);
//}
}
return 0;
}