#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"
int main() {
// Inicializa a comunicação padrão (USB/UART para debug)
stdio_init_all();
// Configuração da UART0 para comunicação serial
uart_init(uart0, 115200);
gpio_set_function(0, GPIO_FUNC_UART); // Define o pino 0 como saída TX
gpio_set_function(1, GPIO_FUNC_UART); // Define o pino 1 como entrada RX
uart_set_fifo_enabled(uart0, true); // Habilita FIFO para evitar perda de dados
// Configurações adicionais da UART0
uart_set_hw_flow(uart0, false, false); // Desativa controle de fluxo por hardware
uart_set_format(uart0, 8, 1, UART_PARITY_NONE); // Define 8 bits de dados, 1 stop bit, sem paridade
// Configuração da UART1 para comunicação serial
uart_init(uart1, 115200);
gpio_set_function(4, GPIO_FUNC_UART); // Define o pino 4 como saída TX
gpio_set_function(5, GPIO_FUNC_UART); // Define o pino 5 como entrada RX
uart_set_fifo_enabled(uart1, true); // Habilita FIFO para melhor gerenciamento de buffer
// Configurações adicionais da UART1
uart_set_hw_flow(uart1, false, false); // Desativa controle de fluxo por hardware
uart_set_format(uart1, 8, 1, UART_PARITY_NONE); // Define 8 bits de dados, 1 stop bit, sem paridade
while (true) {
printf("\nDigite a informação para enviar: ");
char texto[100]; // Buffer para armazenar o texto digitado
scanf("%99s", texto); // Captura a entrada do usuário (até 99 caracteres)
printf("\nEnviando via UART0: %s", texto);
uart_puts(uart0, texto); // Envia a string via UART0
sleep_ms(1000); // Aguarda um segundo antes de prosseguir
// Verifica se há dados disponíveis na UART1
if (uart_is_readable(uart1)) {
printf("\nRecebendo via UART1: ");
while (uart_is_readable(uart1)) {
char c = uart_getc(uart1); // Lê um caractere recebido
printf("%c", c); // Exibe o caractere recebido
}
}
}
}
Loading
pi-pico-w
pi-pico-w