#include <stdio.h> // Biblioteca para operações de entrada e saída padrão (printf, scanf)
#include "pico/stdlib.h" // Biblioteca padrão do Pico SDK para GPIO, UART, etc.
#include "hardware/uart.h" // Biblioteca para comunicação UART
int main() {
stdio_init_all(); // Inicializa a comunicação padrão (stdio)
// UART0 Initialization
uart_init(uart0, 115200); // Inicializa a UART0 com a taxa de transmissão de 115200 bps
gpio_set_function(0, GPIO_FUNC_UART); // Define o pino GPIO 0 como função UART (TX)
gpio_set_function(1, GPIO_FUNC_UART); // Define o pino GPIO 1 como função UART (RX)
uart_set_fifo_enabled(uart0, true); // Habilita o FIFO (First-In, First-Out) para evitar sobrecarga de buffer na UART0
// UART1 Initialization
uart_init(uart1, 115200); // Inicializa a UART1 com a taxa de transmissão de 115200 bps
gpio_set_function(4, GPIO_FUNC_UART); // Define o pino GPIO 4 como função UART (TX)
gpio_set_function(5, GPIO_FUNC_UART); // Define o pino GPIO 5 como função UART (RX)
uart_set_fifo_enabled(uart1, true); // Habilita o FIFO para evitar sobrecarga de buffer na UART1
char input_char; // Variável para armazenar o caractere de entrada do usuário
char received_char = ' '; // Variável para armazenar o caractere recebido pela UART (inicializa com um espaço em branco)
while (true) { // Loop principal do programa
printf("Digite um caractere:\n"); // Imprime uma mensagem no console pedindo para o usuário digitar um caractere
scanf(" %c", &input_char); // Lê um caractere digitado pelo usuário e armazena em input_char
// O espaço antes do %c é para ignorar qualquer espaço ou quebra de linha anterior
printf("Enviando caractere: %c\n", input_char); // Imprime no console a mensagem informando qual caractere será enviado
uart_putc(uart0, input_char); // Transmite o caractere pela UART0
if (uart_is_readable(uart1)) { // Verifica se há dados disponíveis para leitura na UART1
received_char = uart_getc(uart1); // Lê um caractere da UART1 e armazena em received_char
printf("\nCaractere Recebido = %c\n", received_char); // Imprime no console o caractere recebido, caso ele exista
} else {
printf("\nNenhum caractere recebido\n"); // Imprime no console uma mensagem informando que nenhum caractere foi recebido
}
}
return 0; // Retorna 0 (nunca será alcançado devido ao loop infinito)
}Loading
pi-pico-w
pi-pico-w