Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A UART (Universal Asynchronous Receiver/Transmitter) é um componente fundamental em sistemas embarcados, permitindo comunicação serial entre dispositivos. No contexto dos microcontroladores Microchip, a inicialização correta da UART é crucial para garantir a transmissão e recepção de dados sem erros. Este artigo abordará como configurar e inicializar a UART em microcontroladores Microchip, utilizando exemplos práticos e códigos adaptados para este ambiente.
Exemplos:
Configuração Básica da UART no MPLAB X IDE:
Para configurar a UART em um microcontrolador Microchip, você pode usar o MPLAB X IDE junto com o MCC (MPLAB Code Configurator). Aqui está um exemplo de configuração para um microcontrolador PIC16F877A:
// Inclua os cabeçalhos necessários
#include <xc.h>
// Defina a frequência do oscilador
#define _XTAL_FREQ 20000000
void UART_Init()
{
// Configuração do Baud Rate
SPBRG = 31; // Para 9600 bps com Fosc = 20MHz
// Configuração do módulo UART
TXSTAbits.BRGH = 0; // Baud Rate de baixa velocidade
TXSTAbits.SYNC = 0; // Modo assíncrono
TXSTAbits.TX9 = 0; // Modo de 8 bits
TXSTAbits.TXEN = 1; // Habilita o transmissor
RCSTAbits.SPEN = 1; // Habilita o módulo serial
RCSTAbits.RX9 = 0; // Modo de 8 bits
RCSTAbits.CREN = 1; // Habilita o receptor contínuo
// Configuração dos pinos de E/S
TRISCbits.TRISC6 = 0; // TX como saída
TRISCbits.TRISC7 = 1; // RX como entrada
}
void main()
{
UART_Init(); // Inicializa a UART
while(1)
{
// Exemplo de transmissão
while(!TXSTAbits.TRMT); // Espera o buffer de transmissão estar vazio
TXREG = 'A'; // Envia o caractere 'A'
}
}
Recepção de Dados via UART:
A recepção de dados via UART pode ser realizada monitorando o registrador de recepção. Aqui está um exemplo simples que complementa a configuração anterior:
char UART_Read()
{
while(!PIR1bits.RCIF); // Espera até que o dado seja recebido
return RCREG; // Retorna o dado recebido
}
void main()
{
UART_Init(); // Inicializa a UART
while(1)
{
char receivedData = UART_Read(); // Lê o dado recebido
// Processa o dado recebido conforme necessário
}
}
Uso do MPLAB Code Configurator (MCC):
O MCC facilita a configuração da UART através de uma interface gráfica. Siga os passos abaixo:
O MCC gerará funções como UART1_Initialize()
, UART1_Read()
, e UART1_Write()
, que podem ser usadas diretamente em seu código.