生成代碼
1.配置串口1
2.選擇模式
3.開中斷
4.其他的RCC、調試都一樣,弄完直接生成代碼。
串口發送
1.定義一個用來測試的數組並初始化
/* USER CODE BEGIN 0 */
uint8_t aTxBuffer[]="123";
/* USER CODE END 0 */
2.主函數while循環發送
while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_Delay(1000); HAL_UART_Transmit(&huart1,aTxBuffer,sizeof(aTxBuffer),0xffff); }
串口中斷接受
1.定義接受數組
/* USER CODE BEGIN 0 */ uint8_t aRxBuffer[1]; /* USER CODE END 0 */
2.先開啟中斷,只起一次作用
/* USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart1,(uint8_t *)aRxBuffer,1); /* USER CODE END 2 */
3.每次中斷觸發都要在中斷回調函數再此開啟串口接收中斷
/* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART1)//判斷串口號 { HAL_UART_Transmit(&huart1,aRxBuffer,1,100); HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1); //再開啟接收中斷 } } /* USER CODE END 4 */