一、原理图
二、CubeMX配置
以PA9和PA10的串口1为例,选择串口模式,并使能中断。
根据题目要求设置基础参数,如波特率、数据位、校验位、停止位等,并配置IO口,PA9、PA10为串口输入输出模式。
三、代码实现
通过串口发送函数和中断接收函数主要相关代码如下所示。
main.c
//接收指定长度的字符串,并在接收完成之后产生中断
HAL_UART_Receive_IT(&huart1,rx_buf,6);
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance==USART1)
{
if((rx_buf[0]=='y')&&(rx_buf[1]=='e')&&(rx_buf[2]=='s'))
{
//串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志
HAL_UART_Transmit(&huart1,"ok\r\n",5,1);
}
}
HAL_UART_Receive_IT(&huart1,rx_buf,6);
}