创建项目
开启串口
开启串口中断
修改时钟树
保存项目设置
MDK中的修改程序
定义缓冲
/* USER CODE BEGIN PTD */
uint8_t hello[] = "quot;USART1 is ready...\n";
uint8_t recv_buf;
/* USER CODE END PTD */
输入准备就绪
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(& huart1, & recv_buf, 1);
//发送提示信息
HAL_UART_Transmit_IT(&huart1, (uint8_t*)hello, sizeof(hello));
重写串口调用的中断函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
/* 判断是哪个串口触发的中断 */
if(huart ->Instance == USART1)
{
//将接收到的数据发送
HAL_UART_Transmit(huart, &recv_buf, 1,0);
//重新使能串口接收中断
HAL_UART_Receive_IT(huart, &recv_buf, 1);
}
}
编译烧写即可实现功能