//Aluno: ANTONIO JOSÉ PORTELA DE JESUS SANTOS
//UNIT04 - Cap. 05 a 08 - ATIVIDADE: TAREFA DE ENVIO - Clock e temporizador
/* Tarefa 2 - Questão 3 (Parte 1) - 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.
*/
//Declaração das bibliotecas
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"
//Definição das variáveis globais, GPIO e constantes
char enviado[50]={'T','e','s','t','e',' ','U','A','R','T','0','.'};
char recebido[50]={};
//Definição dos protótipos de funções
void setup();
void verifica_msg(char enviado[], char recebido[]);
//Função main
void main() {
setup();
uart_puts(uart0,enviado); //String enviada utilizando a função uart_puts(uartN,string)
int t = 0;
while(enviado[t]!='\0'){
recebido[t]=uart_getc(uart0); //Cada caractere enviado é recebido por uart_getc(uartN)
t++;
}
printf("\nMensagem enviada :%s\n",enviado);
printf("Mensagem recebida:%s\n",recebido);
verifica_msg(enviado,recebido);
while(true){
sleep_ms(1); //Delay para reduzir uso da CPU e evitar travamentos na simulação do Wokwi
}
}
//Funções implementadas
void setup(){
stdio_init_all();
// Configurações da UART0
uart_init(uart0, 115200); // Inicializa a UART0 com baud rate de 115200
gpio_set_function(0, GPIO_FUNC_UART); // Configura pino 0 como TX
gpio_set_function(1, GPIO_FUNC_UART); // Configura pino 1 como RX
uart_set_fifo_enabled(uart0, true);
}
void verifica_msg(char enviado[], char recebido[]){
if (strcmp(enviado,recebido)==0){
printf("UART0 - COMUNICAÇÃO OK\n");
}
else{
printf("UART0 - COMUNICAÇÃO NOK\n");
}
}