STM32使用printf重定向到USART

配置你想要重映射的串口,这里用串口1举例子,你完全可以定义成其他串口。

波特率和位数格式完全按照需要定义,这里不要开启dma和中断。

这里建议使用单独生成.c和.h,当然你不生成也完全可以。

cpp 复制代码
/* USER CODE BEGIN 0 */
int __io_putchar(int ch)
{
    /* Implementation of __io_putchar */
	/* e.g. write a character to the UART1 and Loop until the end of transmission */
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFFFFFF);

    return ch;
}
int __io_getchar(void)
{
  /* Implementation of __io_getchar */
    char rxChar;

    // This loops in case of HAL timeout, but if an ok or error occurs, we continue
    while (HAL_UART_Receive(&huart1, (uint8_t *)&rxChar, 1, 0xFFFFFFFF) == HAL_TIMEOUT);

    return rxChar;
}
/* USER CODE END 0 */

然后将上面代码放到main.c中。其中huart1就是你想要把那个串口映射,根据需要修改。

在需要使用printf的地方先添加头文件"stdio.h",然后就可以正常使用printf了。

同样,你也可以使用putchar('=');函数了,最好的是可以使用getchar()获取串口输入了。

如果你需要打印浮点数,可以配置这里,让浮点数正常显示。Project->Prorerties

相关推荐
sramdram2 小时前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
十月的皮皮5 小时前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
开发笔记-阿牛5 小时前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
残影飞雪7 小时前
ESP32-C5下载烧录固件失败报错的原因
单片机·嵌入式硬件
搞全栈小苏7 小时前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_573967828 小时前
STM32控制器
stm32·单片机·嵌入式硬件
某林2129 小时前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
sramdram10 小时前
低功耗MCU微控制器在动态血糖仪(CGM)中的应用方案
单片机·嵌入式硬件·mcu·mcu微控制器
Dlrb121110 小时前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
李永奉10 小时前
杰理可视化SDK开发-配置ANC主动降噪功能模块教程
单片机·嵌入式硬件·物联网