Interface de Série

Esta biblioteca fornece funções assíncronas para uso no interface de série AVR.

Tipos de dados

  • usart
    Tipo que guarda moradas de registos de dados, estados e control de interface USART. As variáveis do tipo usart devem ser inicializadas no início do programa. Para as inicializações, existem funcões macro USART, cujo único parâmetro é o indíce do interface (0 ou 1).
  • usart_databits
    Enumeração do tipo de contagem de bits. Opções:
    • USART_DATABITS_5 - 5 bits de dados.
    • USART_DATABITS_6 - 6 bits de dados.
    • USART_DATABITS_7 - 7 bits de dados.
    • USART_DATABITS_8 - 8 bits de dados.
    • USART_DATABITS_9 - 9 bits de dados.
  • usart_stopbits
    Enumeração do tipo de contagem dos bits de paragem. Opções:
    • USART_STOPBITS_ONE - Um bit de paragem.
    • USART_STOPBITS_TWO - Dois bits de paragem.
  • usart_parity
    Enumeração do tipo de modo de paridade. Opções:
    • USART_PARITY_NONE - Desabilitado.
    • USART_PARITY_EVEN - Paridade par.
    • USART_PARITY_ODD - Paridade ímpar.

Funções

  • USART_BAUDRATE_ASYNC(baud)

Função macro para calcular o valor da baud rate do registo USART em modo assíncrono. Parâmetros:

  • baud - Baud rate requerida.
  • Devolve o valor do registo da baud rate.
  • void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)

Inicializa o USART em modo assíncrono. Parâmetros:

  • port - variável do interface USART.
  • data_bits - Bits de dados.
  • stop_bits - Bits de paragem.
  • parity - Modo de paridade.
  • baudrate - Valor do registo de baud rate (pode ser calculado com a função macro USART_BAUDRATE_ASYNC).
  • void usart_send_char(usart port, char symbol)

Caractere de bloqueio de transmissão. As funções esperam até o buffer de transmissão ficar vazio antes de escreverem o caractere para o buffer. Parâmetros:

  • port - Variável de interface USART.
  • symbol - Caractere a enviar.
  • void usart_send_string(usart port, char *text)

String de bloqueio de transmissão. Parâmetros:

  • port - Variável de interface USART.
  • text - Apontador para string (array de char). A string tem de acabar com caractere null.
  • bool usart_has_data(usart port)

Verifica os dados no buffer que recebe. Parâmetros:

  • port - Variável de interface USART.
  • Devolve true quando existe um caractere no buffer recebido, e false caso contrário.
  • char usart_read_char(usart port)

Lê um caractere do buffer recebido. Antes de ler o utilizador tem de verificar se existe mesmo um caractere. Parâmetros:

  • port - Variável de interface USART.
  • Devolve um caractere.
  • bool usart_try_read_char(usart port, char *symbol)

Lê um caractere do buffer recebido se este existe. Parâmetros:

  • port - Variável de interface USART.
  • symbol - Apontador para uma variável do tipo caractere. Se existe um caractere no buffer recebido, este é escrito para a variável apontada.
  • Devolve true quando existe um caractere no buffer recebido, e false caso contrário.

Exemplo

O interface USART é configurado para usar 8 bits, um bit de paragem, um baud rate de 9600 bps e sem modo de paridade. O programa envia uma string, espera até algum caractere ser recebido e lê-o de seguida.

#include <homelab/usart.h>
 
// Use USART interface 0.
usart port = USART(0);
 
int main(void)
{	
	char c;
 
	// Interface initialization.
	usart_init_async(port,
		USART_DATABITS_8,
		USART_STOPBITS_ONE,
		USART_PARITY_NONE,
		USART_BAUDRATE_ASYNC(9600));
 
	// String sending.
	usart_send_string(port, "Hello\n");
 
	// Waiting for incoming data.
	while (!usart_has_data(port)) {}
 
	// Read out the received character.
	c = usart_read_char(port);
}
pt/software/homelab/library/usart.txt · Last modified: by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0