This is an old revision of the document!
Serial interface
This library provides AVR asynchronous serial interface usage functions.
Data types
usart
Data type to hold USART inteface control, status and data register addresses. usart typed variables should be initialized at the beginning of the program code. For initializations, there is a macro-functions USART which only parameter is the index of interface (0 or 1).
adc_usart_databits
Data bits count enumeration data type. Options:
USART_DATABITS_5 - 5 data bits.
USART_DATABITS_6 - 6 data bits.
USART_DATABITS_7 - 7 data bits.
USART_DATABITS_8 - 8 data bits.
USART_DATABITS_9 - 9 data bits.
usart_stopbits
Stop bits count enumeration data type. Options:
usart_parity
Paarsuskontrolli valiku tüüp. Väärtuste variandid:
USART_PARITY_NONE - Paarsuskontrolli ja -bitti ei kasutata.
USART_PARITY_EVEN - Ühtede paarisarvulisuse kontroll.
USART_PARITY_ODD - Ühtede paarituarvulisuse kontroll.
Funktsioonid
Makrofunktsiooni USART mooduli asünkroonse režiimi boodikiiruse registri väärtuse arvutamiseks. Parameetrid:
void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)
Jadaliidese asünkroonseks seadistamine. Parameetrid:
port - USART liidese muutuja.
data_bits - Andmebittide arv.
stop_bits - Stoppbittide arv.
parity - Paarsuse tüüp.
baudrate - Boodi kiirus, mis on arvutatud USART_BAUDRATE_ASYNC makro funktsiooniga.
Blokeeruv sümboli saatmise funktsioon. Funktsioon ootab, kuni saatmise puhver tühjeneb ja kirjutab sinna saatmiseks uue sümboli. Parameetrid:
Blokeeruv teksti saatmise funktsioon. Parameetrid:
Sisendpuhvris andmete olemasolu kontroll. Parameetrid:
Sisendpuhvrist sümboli lugemine. Enne lugemist peab veenduma, et puhvris on sümbol. Parameetrid:
Sisendpuhvri sümboli olemasolu kontroll ja selle lugemise ühisfunktsioon. Parameetrid:
port - USART liidese muutuja.
symbol - Viit sümbolile. Kui sisendpuhvris on sümbol, siis see kirjutatakse siia.
Tagastab true, kui sisendpuhvris oli sümbol ja false kui mitte.
Näide
Jadaliidese seadmistamine töötab asünkroonselt 8 andmebiti, ühe stoppbiti ja ilma paarsuse kontrollita boodikiirusel 9600. Programm saadab teksti, ootab, kuni saabub sümbol ja loeb selle siis välja.
#include <homelab/usart.h>
// port on jadaliides 0
usart port = USART(0);
int main(void)
{
char c;
// Jadaliidese seadistamine
usart_init_async(port,
USART_DATABITS_8,
USART_STOPBITS_ONE,
USART_PARITY_NONE,
USART_BAUDRATE_ASYNC(9600));
// Teksti saatmine
usart_send_string(port, "Tere\n");
// Sissetuleva sümboli ootamine
while (!usart_has_data(port)) {}
// Sümboli lugemine
c = usart_read_char(port);
}