gossamer 0.0.0
a very lightweight app framework for SAMD and SAML chips
Loading...
Searching...
No Matches
uart.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <stdint.h>
9#include <stdbool.h>
10#include <stddef.h>
11
12typedef enum {
13 UART_TXPO_0 = 0,
14 UART_TXPO_2,
15 UART_TXPO_0_FLOW_CONTROL,
16 UART_TXPO_NONE = 0xff
17} uart_txpo_t;
18
19typedef enum {
20 UART_RXPO_0 = 0,
21 UART_RXPO_1,
22 UART_RXPO_2,
23 UART_RXPO_3,
24 UART_RXPO_NONE = 0xff
25} uart_rxpo_t;
26
27void uart_init(uint32_t baud);
28
29void uart_enable(void);
30
31void uart_set_run_in_standby(bool run_in_standby);
32
33void uart_write(uint8_t *data, size_t length);
34
35size_t uart_read(uint8_t *data, size_t max_length);
36
37bool uart_read_byte(uint8_t *byte);
38
39void uart_disable(void);
40
41void uart_init_instance(uint8_t sercom, uart_txpo_t txpo, uart_rxpo_t rxpo, uint32_t baud);
42
43void uart_set_run_in_standby_instance(uint8_t sercom, bool run_in_standby);
44
45void uart_enable_instance(uint8_t sercom);
46
47void uart_write_instance(uint8_t sercom, uint8_t *data, size_t length);
48
49size_t uart_read_instance(uint8_t sercom, uint8_t *data, size_t max_length);
50
51bool uart_read_byte_instance(uint8_t sercom, uint8_t *byte);
52
53void uart_disable_instance(uint8_t sercom);
54
65void uart_irq_handler(uint8_t sercom);
void uart_irq_handler(uint8_t sercom)
UART IRQ handler.
Definition: uart.c:195