uint32_t OverrunDisable; /* 接收超时检测禁止 */
uint32_t DMADisableonRxError; /* 接收出错,禁止DMA */
uint32_t AutoBaudRateEnable; /* 自适应波特率使能 */
uint32_t AutoBaudRateMode; /* 自适应波特率的四种检测模式选择 */
uint32_t MSBFirst; /* 发送或者接收数据时,高位在前 */
} UART_AdvFeatureInitTypeDef;
配置串口参数,其实就是配置结构体UART_HandleTypeDef的成员。比如下面配置为波特率115200,8个数据位,无奇偶校验,1个停止位。
UART_HandleTypeDef UartHandle;
/* USART3工作在UART模式 */
/* 配置如下:
- 数据位 = 8 Bits
- 停止位 = 1 bit
- 奇偶校验位 = 无
- 波特率 = 115200bsp
- 硬件流控制 (RTS 和 CTS 信号) */
UartHandle.Instance = USART3;
UartHandle.Init.BaudRate = 115200;
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
UartHandle.Init.StopBits = UART_STOPBITS_1;
UartHandle.Init.Parity = UART_PARITY_NONE;
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
UartHandle.Init.Mode = UART_MODE_TX_RX;
UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if(HAL_UART_Init(&UartHandle) != HAL_OK)
{
Error_Handler();
}
29.3.3 串口的底层配置(GPIO、时钟、中断等)
串口外设的基本参数配置完毕后还不能使用,还需要配置GPIO、时钟、中断等参数,比如下面配置串口1,使用引脚PA9和PA10。
/* 串口1的GPIO PA9, PA10 */
#define USART1_CLK_ENABLE() __HAL_RCC_USART1_CLK_ENABLE()
#define USART1_TX_GPIO_CLK_ENABLE()