31 #define F_CPU 12000000UL
44 #define UART_BAUDRATE 9600UL
47 #define BAUD UART_BAUDRATE
65 #define UART_DATASIZE 8
96 #define UART_STOPBITS 1
112 #define UART_RXC_ECHO
116 #ifndef UART_HANDSHAKE
129 #define UART_HANDSHAKE 0
131 #if UART_HANDSHAKE == 2
136 #ifndef UART_HANDSHAKE_DDR
137 #define UART_HANDSHAKE_DDR DDRC
144 #ifndef UART_HANDSHAKE_PIN
145 #define UART_HANDSHAKE_PIN PINC
152 #ifndef UART_HANDSHAKE_PORT
153 #define UART_HANDSHAKE_PORT PORTC
163 #ifndef UART_HANDSHAKE_CTS_PIN
164 #define UART_HANDSHAKE_CTS_PIN PINC0
174 #ifndef UART_HANDSHAKE_RTS_PIN
175 #define UART_HANDSHAKE_RTS_PIN PINC1
180 #ifndef UART_HANDSHAKE_XON
185 #define UART_HANDSHAKE_XON 0x11
188 #ifndef UART_HANDSHAKE_XOFF
193 #define UART_HANDSHAKE_XOFF 0x13
211 #define UART_STDMODE 1
268 #error "UART_TXCIE and UART_UDRIE cannot be used together"
275 #include <util/setbaud.h>
282 #if !defined(UART_TXCIE) && !defined(UART_UDRIE)
285 #if UART_STDMODE == 1 || UART_STDMODE == 2
290 #if !defined(UART_RXCIE)
295 #if UART_STDMODE == 1 || UART_STDMODE == 3
301 #if !defined(UART_TXCIE) && !defined(UART_UDRIE) && !defined(UART_RXCIE)
302 #if UART_HANDSHAKE > 0
Enumerations for UART data status, error codes, and handshake states.
enum UART_Error_t UART_Error
Alias for enum UART_Error_t representing UART error status.
Definition UART_enums.h:51
enum UART_Data_t UART_Data
Alias for enum UART_Data_t representing UART receive status.
Definition UART_enums.h:28
enum UART_Handshake_t UART_Handshake
Alias for enum UART_Handshake_t representing flow control status.
Definition UART_enums.h:73
void uart_init(void)
Initialize the UART hardware interface with configured parameters.
Definition uart.c:57
void uart_clear(void)
Clear UART input stream errors and discard pending character.
Definition uart.c:280
char uart_putchar(char data)
Transmit a single character via UART (blocking).
Definition uart.c:155
UART_Data uart_scanchar(char *data)
Non-blocking check for received UART data with error handling.
Definition uart.c:197
int uart_scanf(FILE *stream)
UART scanf stream handler for stdin redirection.
Definition uart.c:269
int uart_printf(char data, FILE *stream)
UART printf stream handler for stdout redirection.
Definition uart.c:177
char uart_getchar(UART_Data *status)
Blocking receive single character via UART.
Definition uart.c:244
void uart_disable(void)
Disable the UART hardware interface and reset configuration.
Definition uart.c:123
UART_Error uart_error_flags(void)
Check and clear UART receive error flags.
Definition uart.c:294