串口字节发送流程:
- 编程USARTx_CR1的M位来定义字长。
- 编程USARTx_CR2的STOP位来定义停止位位数。
- 编程USARTx_BRR寄存器确定波特率。
- 使能USARTx_CR1的UE位来使能USARTx。
- 如果进行多缓冲通信,配置USARTx_CR3的DMA使能(DMAT)。
- 使能USARTx_CR1的TE位使能发送器。
- 向发送数据寄存器TDR写入要发送的数据。
- 向TDR寄存器写入最后一个数据后,等待状态寄存器USARTx_ISR的TC位置1,传输完成。
配置步骤1-6 : 配置字长,停止位,奇偶校验位,波特率等:
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef * huart);
该函数内部会引用标识符 HAL_USART_ENABLE使能相应串口。
例程如下:
void uart_init(u32 bound)
{
//UART初始化设置
UART1_Handler.Instance=USART1; //USART1
UART1_Handler.Init.BaudRate=bound;