STM32F1xx系列Hal库实现串口打印与串口通信方法的注意事项

按照官方的标准例程测试发现串口并不完整,无法使用。

按照以下方法及注意事项可以正确配置串口:

1,如果不是特别需要注册多余的回调函数,宏USE_HAL_UART_REGISTER_CALLBACKS不需要打开。

2,实现中断向量表中串口IRQ中断,在中断中调用Hal库中HAL_UART_IRQHandler函数。

3,重写接收完成回调函数HAL_UART_RxCpltCallback,在改函数中调用HAL_UART_Receive_IT一边准备下一次接收。

具体代码如下:

void USART1_IRQHandler(void)                	
{ 
	HAL_UART_IRQHandler(&uart1_handler);	
} 

void USART2_IRQHandler(void)                	
{ 

	HAL_UART_IRQHandler(&uart2_handler);	 

} 

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if (huart->Instance == USART2)
	{

		if (uart2_handler.Init.Mode == UART_MODE_TX_RX || uart2_handler.Init.Mode == UART_MODE_RX)
		{
			HAL_UART_Receive_IT(&uart2_handler, (uint8_t *)aRxBuffer, RXBUFFERSIZE);
		}

	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章