單片機程序如下:
/* USER CODE BEGIN PV */
uint8_t recBuf[10]; //接收到的一幀數據
uint8_t command1=0xA5;
uint8_t command2=0x52;
/* USER CODE END PV */
/* USER CODE BEGIN 2 */
HAL_UART_Transmit_IT(&huart1,&command1,1); //發送0xA5
HAL_UART_Transmit_IT(&huart1,&command2,1); //發送0x52
HAL_UART_Receive_IT(&huart1,recBuf,10); //開啟串口1的接收中斷
/* USER CODE END 2 */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
//main函數里什么都沒寫
}
/* USER CODE END 3 */
/* USER CODE BEGIN 4 */
void HAL_UART_RxCapltCallback(UART_HandleTypeDef *huart) //串口接收中斷回調函數
{
if(huart ->Instance == USART1)
{
HAL_UART_Transmit_IT(&huart2,recBuf,10); //通過串口2將接收到的數據發送到電腦的串口助手
HAL_UART_Receive_IT(&huart1,recBuf,10); //開啟串口1的接收中斷
}
}
/* USER CODE END 4 */ 作者: Hephaestus 時間: 2022-6-27 17:56
回調函數執行的時候還沒有退出中斷,HAL_UART_Transmit_IT()能用嗎?