Vitepress conversion of docs. (#23795)
This commit is contained in:
parent
395766657f
commit
6ef9717288
357 changed files with 3611 additions and 24208 deletions
|
@ -1,10 +1,10 @@
|
|||
# UART Driver :id=uart-driver
|
||||
# UART Driver {#uart-driver}
|
||||
|
||||
The UART drivers used in QMK have a set of common functions to allow portability between MCUs.
|
||||
|
||||
Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
|
||||
|
||||
## Usage :id=usage
|
||||
## Usage {#usage}
|
||||
|
||||
In most cases, the UART driver code is automatically included if you are using a feature or driver which requires it.
|
||||
|
||||
|
@ -16,7 +16,7 @@ UART_DRIVER_REQUIRED = yes
|
|||
|
||||
You can then call the UART API by including `uart.h` in your code.
|
||||
|
||||
## AVR Configuration :id=avr-configuration
|
||||
## AVR Configuration {#avr-configuration}
|
||||
|
||||
No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
|
||||
|
||||
|
@ -28,7 +28,7 @@ No special setup is required - just connect the `RX` and `TX` pins of your UART
|
|||
|ATmega32A |`D1`|`D0`|*n/a*|*n/a*|
|
||||
|ATmega328/P |`D1`|`D0`|*n/a*|*n/a*|
|
||||
|
||||
## ChibiOS/ARM Configuration :id=arm-configuration
|
||||
## ChibiOS/ARM Configuration {#arm-configuration}
|
||||
|
||||
You'll need to determine which pins can be used for UART -- as an example, STM32 parts generally have multiple UART peripherals, labeled USART1, USART2, USART3 etc.
|
||||
|
||||
|
@ -53,45 +53,45 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas
|
|||
| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` |
|
||||
| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` |
|
||||
|
||||
## API :id=api
|
||||
## API {#api}
|
||||
|
||||
### `void uart_init(uint32_t baud)` :id=api-uart-init
|
||||
### `void uart_init(uint32_t baud)` {#api-uart-init}
|
||||
|
||||
Initialize the UART driver. This function must be called only once, before any of the below functions can be called.
|
||||
|
||||
#### Arguments :id=api-uart-init-arguments
|
||||
#### Arguments {#api-uart-init-arguments}
|
||||
|
||||
- `uint32_t baud`
|
||||
The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200.
|
||||
|
||||
---
|
||||
|
||||
### `void uart_write(uint8_t data)` :id=api-uart-write
|
||||
### `void uart_write(uint8_t data)` {#api-uart-write}
|
||||
|
||||
Transmit a single byte.
|
||||
|
||||
#### Arguments :id=api-uart-write-arguments
|
||||
#### Arguments {#api-uart-write-arguments}
|
||||
|
||||
- `uint8_t data`
|
||||
The byte to write.
|
||||
|
||||
---
|
||||
|
||||
### `uint8_t uart_read(void)` :id=api-uart-read
|
||||
### `uint8_t uart_read(void)` {#api-uart-read}
|
||||
|
||||
Receive a single byte.
|
||||
|
||||
#### Return Value :id=api-uart-read-return
|
||||
#### Return Value {#api-uart-read-return}
|
||||
|
||||
The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read).
|
||||
|
||||
---
|
||||
|
||||
### `void uart_transmit(const uint8_t *data, uint16_t length)` :id=api-uart-transmit
|
||||
### `void uart_transmit(const uint8_t *data, uint16_t length)` {#api-uart-transmit}
|
||||
|
||||
Transmit multiple bytes.
|
||||
|
||||
#### Arguments :id=api-uart-transmit-arguments
|
||||
#### Arguments {#api-uart-transmit-arguments}
|
||||
|
||||
- `const uint8_t *data`
|
||||
A pointer to the data to write from.
|
||||
|
@ -100,11 +100,11 @@ Transmit multiple bytes.
|
|||
|
||||
---
|
||||
|
||||
### `void uart_receive(char *data, uint16_t length)` :id=api-uart-receive
|
||||
### `void uart_receive(char *data, uint16_t length)` {#api-uart-receive}
|
||||
|
||||
Receive multiple bytes.
|
||||
|
||||
#### Arguments :id=api-uart-receive-arguments
|
||||
#### Arguments {#api-uart-receive-arguments}
|
||||
|
||||
- `uint8_t *data`
|
||||
A pointer to the buffer to read into.
|
||||
|
@ -113,10 +113,10 @@ Receive multiple bytes.
|
|||
|
||||
---
|
||||
|
||||
### `bool uart_available(void)` :id=api-uart-available
|
||||
### `bool uart_available(void)` {#api-uart-available}
|
||||
|
||||
Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately.
|
||||
|
||||
#### Return Value :id=api-uart-available-return
|
||||
#### Return Value {#api-uart-available-return}
|
||||
|
||||
`true` if the receive buffer length is non-zero.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue