电路和 《用HAL库改写江科大的stm32入门例子_9-1》一致。
我们在whlie循环当中,不断查询端口,获取数据,存放到一个数组当中,同时回显给电脑上。这种方法耗费cpu,还是用中断进行串口通讯更合理。
基本操作看到一遍写得比较清晰的博客,我这就不重复了
ps:STM32CubeMX系列教程4:基本串行通信
上个结果图:
注意串口中断回调函数中,要判断串口的来源,因为所有串口中断都用这个回调函数,同时要注意,在这个回调函数中重新开启中断接收。
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){if(huart->Instance == USART1) //判断中断是否来自于串口1{HAL_UART_Transmit_IT(&huart1,(uint8_t*)rx_data,2); //将接收到的数据通过中断的方式发送出去HAL_UART_Receive_IT(&huart1,(uint8_t*)rx_data,2); //开始接收下一轮数据}
}
其他不赘述。