5
|
1 |
#ifndef QMSK_SERIAL_H
|
|
2 |
#define QMSK_SERIAL_H
|
|
3 |
|
|
4 |
/** Serial modes */
|
|
5 |
enum serial_mode {
|
|
6 |
SERIAL_MODE_ASYNC = 0b00,
|
|
7 |
|
|
8 |
SERIAL_MODE_DEFAULT = SERIAL_MODE_ASYNC
|
|
9 |
};
|
|
10 |
|
|
11 |
enum serial_baud {
|
|
12 |
SERIAL_BAUD_9600 = 103,
|
|
13 |
};
|
|
14 |
|
|
15 |
enum serial_parity {
|
|
16 |
SERIAL_PARITY_N = 0b00,
|
|
17 |
};
|
|
18 |
|
|
19 |
enum serial_stopbits {
|
|
20 |
SERIAL_STOPBITS_1 = 0b0,
|
|
21 |
};
|
|
22 |
|
|
23 |
enum serial_chars {
|
|
24 |
SERIAL_CHARS_8 = 0b011,
|
|
25 |
};
|
|
26 |
|
|
27 |
/* Size of RX buffer */
|
|
28 |
#define SERIAL_BUF 64
|
|
29 |
|
|
30 |
|
|
31 |
/*
|
|
32 |
* Setup the UART for serial mode.
|
|
33 |
*/
|
|
34 |
void serial_init (
|
|
35 |
enum serial_baud baud,
|
|
36 |
enum serial_parity parity,
|
|
37 |
enum serial_stopbits stopbits
|
|
38 |
);
|
|
39 |
|
|
40 |
/*
|
|
41 |
* Read a single input char from the rx buffer.
|
|
42 |
*
|
|
43 |
* Returns 0 if the rx buf is empty.
|
|
44 |
*/
|
|
45 |
char serial_read ();
|
|
46 |
|
|
47 |
/*
|
|
48 |
* Write a single output char, either directly or via the tx "buffer".
|
|
49 |
*
|
|
50 |
* XXX: currently only has a tx buffer of 1 byte.
|
|
51 |
*/
|
|
52 |
void serial_write (char c);
|
|
53 |
|
|
54 |
#endif
|