 |
思澈科技软件开发工具包
2.20
|
|
串口(UART)模块提供了一种灵活的方式,可以与需要行业标准 NRZ 异步串行数据格式的外部设备进行全双工数据交换。 UART 使用可编程波特率发生器提供非常广泛的波特率范围。它支持调制解调器操作 (CTS/RTS) 和 DMA(直接存储器访问)以进行高速通信。
UART主要特点
- 可配置 16 或 8 的过采样方法,以在速度和时钟容差之间提供灵活性。
- 高达 3 Mbit/s 的通用可编程发送和接收波特率
- 可编程数据字长(7、8 或 9 位)
- 可配置的停止位(1 或 2 个停止位)
- 使用 DMA 的连续通信
- 通信控制/错误检测标志
- 奇偶校验控制:发送奇偶校验位,检查接收数据字节的奇偶校验
请注意,SiFli 芯片组中的 UART FIFO 大小为 1 个字节。 强烈建议在 RX 方向使用 DMA。
使用UART
以下示例显示了 UART TX 和 RX。 UART DMA 的使用,请参考 RTOS Sifli BSP 文件夹(rtos/rtthread/bsp/sifli/drivers)中的 drv_usart.c 为例。
{
#include "bf0_hal.h"
void USART4_IRQHandler(void)
{
}
...
{
}
NVIC_EnableIRQ(USART4_IRQn);
...
}
#define UART_OVERSAMPLING_16
Definition: bf0_hal_uart.h:434
#define UART_HWCONTROL_NONE
Definition: bf0_hal_uart.h:404
#define UART_WORDLENGTH_9B
Definition: bf0_hal_uart.h:371
@ HAL_OK
Definition: bf0_hal_def.h:75
#define UART_MODE_TX_RX
Definition: bf0_hal_uart.h:417
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified UART flag is set or not.
Definition: bf0_hal_uart.h:960
uint32_t Mode
Definition: bf0_hal_uart.h:109
uint32_t BaudRate
Definition: bf0_hal_uart.h:80
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
Initialize the UART mode according to the specified parameters in the UART_InitTypeDef and initialize...
UART handle Structure definition.
Definition: bf0_hal_uart.h:236
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified UART interrupt.
Definition: bf0_hal_uart.h:984
#define UART_FLAG_RXNE
Definition: bf0_hal_uart.h:751
USART_TypeDef * Instance
Definition: bf0_hal_uart.h:237
uint32_t HwFlowCtl
Definition: bf0_hal_uart.h:112
uint32_t StopBits
Definition: bf0_hal_uart.h:99
#define __HAL_UART_GETC(__HANDLE__)
Get byte in FIFO.
Definition: bf0_hal_uart.h:1199
UART_InitTypeDef Init
Definition: bf0_hal_uart.h:239
uint32_t Parity
Definition: bf0_hal_uart.h:102
uint32_t WordLength
Definition: bf0_hal_uart.h:96
#define UART_STOPBITS_1
Definition: bf0_hal_uart.h:384
#define UART_IT_RXNE
Definition: bf0_hal_uart.h:781
#define UART_WORDLENGTH_8B
Definition: bf0_hal_uart.h:370
#define UART_PARITY_ODD
Definition: bf0_hal_uart.h:396
uint32_t OverSampling
Definition: bf0_hal_uart.h:116
#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Check whether the specified UART interrupt source is enabled or not.
Definition: bf0_hal_uart.h:1061
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Send an amount of data in blocking mode.