This shows you the differences between two versions of the page.
| pt:examples:communication:uart [2015/12/11 17:57] – Criação deste novo documento. artica | pt:examples:communication:uart [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| + | ====== UART ====== | ||
| + | // | ||
| + | [HW] [[et: | ||
| + | [AVR] [[et: | ||
| + | [LIB] [[et: | ||
| + | [LIB] [[et: | ||
| + | |||
| + | ===== Teoria ===== | ||
| + | |||
| + | UART é um receptor/ | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | A transmissão de dados UART pode ocorrer em quadro (em Inglês //frame//) através da qual os bits de dados, dependendo da configuração de 5 a 9. A peça mais comum de dados é de 8 bits, ou um byte. Além disso, bits adicionais de bits de dados transmitidos para o quadro, que é o de dados de chegada e de expirar o reconhecimento atual do lado do receptor. O primeiro deles é chamado bit de inicio (startbit), que é sempre 0, e outra bit (ou bits) de paragem, que é sempre o primeiro bit de paragem antes do bit de paridade, que é usado para verificar a precisão dos dados. O bit de paridade indica se o número de bits de dados entre o número de uns é par ou ímpar. | ||
| + | |||
| + | Além da estrutura do quadro, outro parâmetro importante é a taxa de transmissão (em inglês // | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Existe em quase todos os microcontroladores uma interface UART. Padrão UART não especifica a tensão dos sinais, que depende da tensão do microcontrolador, | ||
| + | |||
| + | ===== Prática ===== | ||
| + | |||
| + | Módulo de comunicação HomeLab inclui uma interface UART externa. Para esta porta se conectar ao PC é necessário usar um cabo de transferência TTL UART <-> RS232 ou TTL UART <-> USB. | ||
| + | |||
| + | Exemplo do programa para testar o terminal de alguns tipos de software, tais como o HyperTerminal (Windows XP). Em computadores Linux pode ser usado no funcionamento do programa // | ||
| + | |||
| + | <code c> | ||
| + | // Kodulabori UART liidese näidisprogramm | ||
| + | // Arvutist või mõnest teisest seadmest saadetud tekst kuvatakse LCD ekraanil | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // USART liidese määramine | ||
| + | usart port = USART(0); | ||
| + | |||
| + | // Põhiprogramm | ||
| + | int main(void) | ||
| + | { | ||
| + | char c; | ||
| + | unsigned char row = 1; | ||
| + | |||
| + | // USART liidese seadistamine | ||
| + | usart_init_async(port, | ||
| + | USART_DATABITS_8, | ||
| + | USART_STOPBITS_ONE, | ||
| + | USART_PARITY_NONE, | ||
| + | USART_BAUDRATE_ASYNC(9600)); | ||
| + | |||
| + | // LCD ekraani seadistamine ja tervitusteksti kuvamine | ||
| + | lcd_gfx_init(); | ||
| + | lcd_gfx_write_string(" | ||
| + | lcd_gfx_goto_char_xy(0, | ||
| + | // Arvutile tere ütlemine | ||
| + | usart_send_string(port, | ||
| + | |||
| + | // Lõputu tsükkel | ||
| + | while (1) | ||
| + | { | ||
| + | if (usart_try_read_char(port, | ||
| + | { | ||
| + | if (c == ' | ||
| + | { | ||
| + | // Rea vahetamine | ||
| + | row = 1 - row; | ||
| + | // Rea tühjendamine eelmisest teatest | ||
| + | lcd_gfx_clear_line(row); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | // Märgi otse ekraanile väljastamine | ||
| + | lcd_gfx_write_char(c); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | /* | ||
| + | [[et: | ||
| + | */ | ||