目录
序言
本文实现了串口的重定向,并讲述其中遇到的一些问题。
一.原理图
由原理图可知串口通信主要用到的引脚为PA9和PA10
二.STM32CubeMX的配置
模式选择异步通信,波特率选择115200。
开启中断
!!!默认的引脚与板子上的引脚不同记得修改,修改的方法是点击PA9和PA10选择 UART
三.代码的编写
uint16_t rx_buf[200];
HAL_UART_Receive_IT(&huart1,(uint8_t*)rx_buf,1);
首先是全局变量的定义和接收中断的开启
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(rx_buf[0]=='a')
{
printf("ok");
}
HAL_UART_Receive_IT(&huart1,(uint8_t*)rx_buf,1);
}
接收中断的编写
int fputc(int ch,File *p)
{
HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFF);
return ch;
}
printf的重定向
!!记得打开微库,即勾选Use MicroLIB
总结
本文代码的效果是如果接收到a即回复ok