////ALESSANDRA KIMIE HIRO.
//EMBARCATEC IFMA - GRUPO 02
//TAREFA 2
//3. Elabore um código utilizando a interfaces UART0 e conecte os fios TX
//e RX atribuídos à essa interface entre. Essa estrutura envia dados e
//recebe os dados na mesma interface, apenas para verificar seu funcionamento.
//Utilize a função scanf da biblioteca stdio para enviar via console um
//dado à placa, em seguida, transmita da UART0 para a UART1, e por fim,
//transmita o dado recebido para o console utilizando o printf.
#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#include "hardware/uart.h"
#define UART0_TX_PIN 0
#define UART0_RX_PIN 1
#define UART1_TX_PIN 4
#define UART1_RX_PIN 5
int main() {
// Inicializa a UART0 (comunicação com o console)
uart_init(uart0, 9600);
gpio_set_function(UART0_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART0_RX_PIN, GPIO_FUNC_UART);
// Inicializa a UART1 (comunicação entre UART0 e UART1)
uart_init(uart1, 9600);
gpio_set_function(UART1_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART1_RX_PIN, GPIO_FUNC_UART);
// Configura a UART0 para enviar e receber dados via printf
stdio_init_all();
char received_char;
// Exibe a mensagem inicial no console (UART0)
printf("Digite um caractere para ser transmitido via UART0:\n");
while (1) {
// Verifica se há dados disponíveis na UART0 (console)
if (uart_is_readable(uart0)) {
// Lê um caractere da UART0 (do console)
received_char = uart_getc(uart0);
// Exibe o caractere recebido no console (UART0)
printf("Recebido via UART0: %c\n", received_char);
// Envia o dado para a UART1
uart_putc(uart1, received_char);
// Verifica se há dados disponíveis na UART1
if (uart_is_readable(uart1)) {
// Lê o dado de UART1
char forwarded_char = uart_getc(uart1);
// Exibe o dado recebido de UART1 no console (UART0)
printf("Dado recebido de UART1 e enviado para o console: %c\n", forwarded_char);
}
}
}
return 0;
}