#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"
// Definição dos pinos da UART
#define UART0_TX_PIN 0
#define UART0_RX_PIN 1
#define UART1_TX_PIN 4
#define UART1_RX_PIN 5
int main() {
// Inicialização do UART0 e UART1
stdio_init_all(); // Para usar o monitor serial
uart_init(uart1, 115200); // Configura UART1 com baud rate de 115200
// Configuração dos pinos para UART1
gpio_set_function(UART1_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART1_RX_PIN, GPIO_FUNC_UART);
printf("UART Loopback Test\n");
printf("Digite um caractere e pressione ENTER:\n");
char input[10];
while (true) {
// Lê dados do console usando fgets
if (fgets(input, sizeof(input), stdin)) {
char ch = input[0]; // Pega o primeiro caractere digitado
// Envia o dado recebido pela UART0
uart_putc(uart1, ch);
// Aguarda o dado ser recebido pela UART1
while (!uart_is_readable(uart1)) {
tight_loop_contents();
}
// Lê o dado recebido pela UART1
char received = uart_getc(uart1);
// Envia o dado recebido de volta ao console
printf("Dado recebido pela UART1: %c\n", received);
}
}
return 0;
}