diff options
| author | QMK Bot <hello@qmk.fm> | 2021-02-05 22:21:23 +0000 |
|---|---|---|
| committer | QMK Bot <hello@qmk.fm> | 2021-02-05 22:21:23 +0000 |
| commit | 843643aef36165ee6b00a52e19a272e69f19e6e1 (patch) | |
| tree | e033218c8d1c6fed65b360e684b41530e96dca8a /tmk_core | |
| parent | c3eee3a842366497abeacc22c02020622a339c46 (diff) | |
| parent | 5ea92a9c1cbe3e20bf4830d550d797a8e9650da8 (diff) | |
| download | qmk_firmware-843643aef36165ee6b00a52e19a272e69f19e6e1.tar.gz qmk_firmware-843643aef36165ee6b00a52e19a272e69f19e6e1.zip | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'tmk_core')
| -rw-r--r-- | tmk_core/protocol/serial.h | 2 | ||||
| -rw-r--r-- | tmk_core/protocol/serial_uart.c | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/tmk_core/protocol/serial.h b/tmk_core/protocol/serial.h index b70d117d7..0204b84a9 100644 --- a/tmk_core/protocol/serial.h +++ b/tmk_core/protocol/serial.h | |||
| @@ -37,6 +37,8 @@ POSSIBILITY OF SUCH DAMAGE. | |||
| 37 | 37 | ||
| 38 | #pragma once | 38 | #pragma once |
| 39 | 39 | ||
| 40 | #define SERIAL_UART_DATA UDR1 | ||
| 41 | |||
| 40 | /* host role */ | 42 | /* host role */ |
| 41 | void serial_init(void); | 43 | void serial_init(void); |
| 42 | uint8_t serial_recv(void); | 44 | uint8_t serial_recv(void); |
diff --git a/tmk_core/protocol/serial_uart.c b/tmk_core/protocol/serial_uart.c index a15124193..4fe059e7d 100644 --- a/tmk_core/protocol/serial_uart.c +++ b/tmk_core/protocol/serial_uart.c | |||
| @@ -40,6 +40,22 @@ POSSIBILITY OF SUCH DAMAGE. | |||
| 40 | #include <avr/interrupt.h> | 40 | #include <avr/interrupt.h> |
| 41 | #include "serial.h" | 41 | #include "serial.h" |
| 42 | 42 | ||
| 43 | #ifndef SERIAL_UART_BAUD | ||
| 44 | # define SERIAL_UART_BAUD 9600 | ||
| 45 | #endif | ||
| 46 | |||
| 47 | #define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) | ||
| 48 | #define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) | ||
| 49 | #define SERIAL_UART_RXD_VECT USART1_RX_vect | ||
| 50 | |||
| 51 | #ifndef SERIAL_UART_INIT_CUSTOM | ||
| 52 | # define SERIAL_UART_INIT_CUSTOM \ | ||
| 53 | /* enable TX */ \ | ||
| 54 | UCSR1B = _BV(TXEN1); \ | ||
| 55 | /* 8-bit data */ \ | ||
| 56 | UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); | ||
| 57 | #endif | ||
| 58 | |||
| 43 | #if defined(SERIAL_UART_RTS_LO) && defined(SERIAL_UART_RTS_HI) | 59 | #if defined(SERIAL_UART_RTS_LO) && defined(SERIAL_UART_RTS_HI) |
| 44 | // Buffer state | 60 | // Buffer state |
| 45 | // Empty: RBUF_SPACE == RBUF_SIZE(head==tail) | 61 | // Empty: RBUF_SPACE == RBUF_SIZE(head==tail) |
| @@ -61,7 +77,14 @@ POSSIBILITY OF SUCH DAMAGE. | |||
| 61 | # define rbuf_check_rts_hi() | 77 | # define rbuf_check_rts_hi() |
| 62 | #endif | 78 | #endif |
| 63 | 79 | ||
| 64 | void serial_init(void) { SERIAL_UART_INIT(); } | 80 | void serial_init(void) { |
| 81 | do { | ||
| 82 | // Set baud rate | ||
| 83 | UBRR1L = SERIAL_UART_UBRR; | ||
| 84 | UBRR1L = SERIAL_UART_UBRR >> 8; | ||
| 85 | SERIAL_UART_INIT_CUSTOM; | ||
| 86 | } while (0); | ||
| 87 | } | ||
| 65 | 88 | ||
| 66 | // RX ring buffer | 89 | // RX ring buffer |
| 67 | #define RBUF_SIZE 256 | 90 | #define RBUF_SIZE 256 |
