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);
		}

	}
}

 

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