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

相关推荐
Jason_zhao_MR1 天前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式
ACP广源盛139246256731 天前
iOS 27 开放 AI 生态@ACP#小型化扩展黄金风口,IX8008全面超越 ASM2806,铸就嵌入式 AI 扩展核心
人工智能·嵌入式硬件·macos·ios·计算机外设·objective-c·cocoa
smartpi_ai1 天前
玩具产品从按键控制升级为语音控制:语音模块与MCU串口通信实战
单片机·嵌入式硬件
BreezeJuvenile1 天前
【STM32】时钟摘取法
stm32·单片机·嵌入式硬件
崇山峻岭之间1 天前
单片机GPIO配置
单片机·嵌入式硬件
不会武功的火柴1 天前
SystemVerilog语法(7)-接口(interface)
嵌入式硬件·fpga开发·仿真·ic验证·rtl
深圳英康仕1 天前
五网口六USB:一台龙芯2K3000工控机的接口配置解读
嵌入式硬件·信创·工控机·工业计算机·龙芯2k3000
lllllllccccc1 天前
FReeRtos中断管理、临界段保护和任务调度器挂起和恢复学习
单片机·嵌入式硬件
ACP广源盛139246256731 天前
IX8024 对标 ASM2824 @ACP#搭配昆仑芯 P800 构建 AI 服务器 PCIe4.0 高速互联架构
网络·人工智能·嵌入式硬件·电脑
踏着七彩祥云的小丑1 天前
嵌入式测试学习第 15 天:逻辑门基础:与或非、简单逻辑电路
单片机·嵌入式硬件