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

相关推荐
up向上up13 分钟前
基于51单片机智能家居环境检测设计_烟雾温度GSM短信提示报警器
嵌入式硬件·51单片机·智能家居
Nautiluss24 分钟前
一起玩XVF3800麦克风阵列(五)
嵌入式硬件·音频·语音识别·智能音箱
youcans_35 分钟前
【动手学电机驱动】 STM32-FOC(11)ST MCSDK6.0 电机控制软件框架
stm32·单片机·嵌入式硬件·foc·电机驱动
rechol1 小时前
cpu异常中断(2)
单片机·嵌入式硬件
会编程是什么感觉...1 小时前
硬件 - 常见通信协议整合
单片机·嵌入式硬件·fpga开发
沐欣工作室_lvyiyi2 小时前
基于单片机的垃圾容量监测与语音交互系统设计(论文+源码)
stm32·单片机·嵌入式硬件·垃圾桶
rechol2 小时前
mcu启动流程
stm32·单片机·mcu·嵌入式
chuwengeileyan13 小时前
stm32 adc采集光敏传感器模块的模拟输出脚A0的值
单片机·嵌入式硬件
啊森要自信3 小时前
【C语言】 C语言文件操作
c语言·开发语言·汇编·stm32·单片机
1+2单片机电子设计4 小时前
基于 STM32 的数控 BUCK-BOOST 升降压电源设计
stm32·单片机·嵌入式硬件