使用STM32CubeIDE的printf串口打印功能
STM32CubeIDE使用printf函数实现串口打印
第一步在图形画界面进行串口配置,我们这里打开串口1并设置为异步通信模式。
配置好后,就保存起就会进入编程界面。然后进行下一步配置
在菜单栏的项目里进入属性里面
找到图中黄色部分, 勾选上这两个,然后点击应用并关闭就可以了。
下面进行函数重写,程序如下所示:
#ifdef __GNUC__ //串口重定向
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
这部分需要加在main函数上面那个位置,也就是在
STM32CubeMX使用printf函数实现串口打印
下面这种是STM32CubeMX和keil形式使用printf函数的形式。与上面配置一样,但只需要进行一个串口重写就可以了,其内容就是和上面一样的。
UART不定长接收:
STM32关于UART的接收方式_啵啵520520的博客-CSDN博客
注意事项(针对于CUBEMX+Kile5):
在使用过程中,如果配置了以上的配置,出现程序卡死的情况则需要开启use MicroLIB(微库)
在魔术棒 / Targer 选项页中勾选use MicroLIB(下面代码的13~35行不用写)