当前位置: 首页 > article >正文

STM32CubeIDE关于printf()串口输出重定向的问题

一、问题描述

        之前一直使用CubeMX搭配MDK-Keil5生成代码,在用到串口时,需要用到printf()输出重定向到PC的串口调试助手,Keil5通过点击“魔法棒”可以选择使用MicroLIB来加载stdio.h标准输入输出库。

        笔者后来自学FreeRTOS,选择用CubeIDE来生成代码,但是CubeIDE没有MicroLIB可以选,经过上网各种检索后得知,CubeIDE有自动配置了该项选择,所以只需要自定义函数printf()输出重定向即可。据此,笔者自己实现了如下所示的printf()输出重定向:

但在调试过程中,并没有按照预期将数据打印到串口调试助手上,随后又进行了检索,成功实现打印,在此感谢大佬分享的方法,链接如下:

stm32cubeide使用printf函数打印数据_stm32cube printf-CSDN博客

二、方法

在main.c重写这个函数。

  syscalls.c 文件通常与新的libc(C标准库)实现中的系统调用(syscalls)有关,特别是在裸机(bare-metal)或RTOS(实时操作系统)环境中,当标准库函数需要底层操作系统支持但操作系统环境不完整或不存在时。

int   __io_putchar(int ch)

{

        HAL_UART_Transmit(&huart1,(uint8_t *) &ch, 1, 1000);

        return ch;

}

头文件添加:#include "stdio.h " ,在就可以使用printf()函数了。

        如果有打印中文的需求,看看刚刚那位博主的文章就可以啦~


http://www.kler.cn/a/304755.html

相关文章:

  • 利用阿里云下载 WebRTC 源码
  • docker镜像源,亲测可用,时间2024-11-14
  • 32位、64位、x86与x64:深入解析计算机架构
  • DNS面临的4大类共计11小类安全风险及防御措施
  • 使用pdfjs加载多页pdf并实现打印
  • 设计模式:工厂方法模式和策略模式
  • 『功能项目』项目优化 - 框架加载资源【41】
  • 在 macOS 上管理 Node版本
  • 计算机存储概念
  • python numpy pytorch tensorlfow list 转tenser float 32的方法,模型计算基本用的都是float32,需要转换
  • 常见本地大模型个人知识库工具部署、微调及对比选型
  • mac上Charles怎么配置,可以抓取浏览器/IDEA的接口
  • 【getshell】phpmyadmin后台getshell(4.8.5)
  • springboot+security为什么@ControllerAdvice自定义的异常处理没有生效
  • 怎么去浮毛比较高效?热门除浮毛宠物空气净化器希喂、范罗士、有哈测评推荐
  • Linux与Ubuntu:内核与发行版的关系
  • MinGW-w64全面讲解:Windows平台的C/C++编译利器
  • Qt控制开发板的LED
  • openCV的python频率域滤波
  • 唯品会大数据面试题及参考答案(3万字长文)
  • C到C++入门基础知识
  • Linux环境基础开发工具---yum
  • Numpy 单位矩阵创建 eye()函数详解
  • 如何管理付费媒体预算:分配、风险与扩展
  • 企业数字化转型建设方案(数据中台、业务中台、AI中台)(可编辑的188页WORD)
  • 助力汽车半导体产业发展,2025 广州国际新能源汽车功率半导体技术展览会与您相约“羊城”广州