一、为什么是uart而不是usart?
因为是在XCOM里直接输入完成所有的数据再发送,接着单片机再逐个接收数据直至结束符,所以是异步模式,也就是uart
二、为什么涉及到中断?
因为在实际应用中肯定不知道什么时候才接收数据,所以需要中断的形式。
三、程序运行的过程?
1、打开中断入口(也就是准备接收)
HAL_UART_Receive_IT(&huart1, rx, 1);//huart1代表是uart1,写入rx一个字节。没有接收完成,只是说知道了
2、正常运行主函数程序
3、当数据发送到RX时,触发中断,进入"HAL_UART_IRQHandler"
4、"HAL_UART_IRQHandler()"调用“UART_Receive_IT()”进入处理数据的过程
5、“UART_Receive_IT()”进行一系列处理之后还会关闭中断入口,并且在完成数据接受之后调用HAL_UART_RxCpltCallback()函数进行完成用户在接受数据之后完成的动作
6、HAL_UART_RxCpltCallback()根据接收到的信息完成设定的动作之后&