printf串口重定向标准方法

这篇具有很好参考价值的文章主要介绍了printf串口重定向标准方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,简介

在程序调试的过程中,需要用到串口打印信息来判断单片机程序运行是否正确。需要使用串口对printf进行重定向,本文就介绍一下ARM官方推荐的一种重定向的方法,供参考使用。

二,具体步骤

主要分为两步:
1,将retarget文件复制到工程;
2,重新实现sendchar和getkey函数;

2.1 将retarget.c添加到project

在keil的安装目录(xx/ARM/Startup)下,找到retarget.c文件,复制到工程目录:
printf串口重定向标准方法
这里我复制到我的工程目录(xx\Core\Src)下:
printf串口重定向标准方法
将retarget.c添加到工程:
printf串口重定向标准方法
看到工程里有retarget文件,代表文件添加成功。
printf串口重定向标准方法

2.2 重新实现sendchar和getkey函数

printf串口重定向标准方法
官方推荐在Serial.c中进行实现,本文为了方便演示直接在main函数中进行实现:
printf串口重定向标准方法
注:getkey函数因为在调试的过程中用不到所有暂时不实现,有必要用到时再进行实现。

调用验证printf函数打印是否成功:
在main函数的while(1)中添加调用代码:
printf串口重定向标准方法
2.3 编译下载验证效果
printf串口重定向标准方法
可以看到printf调试信息已经在循环打印了,确认printf重定向成功。

三,总结

本文主要介绍如何使用keil自带的retarget.c进行printf重定向,供参考。文章来源地址https://www.toymoban.com/news/detail-452168.html

到了这里,关于printf串口重定向标准方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32使用printf重定向到USART(串口)并打印数据到串口助手

    我们知道我们在进行编程的时候,遇到问题,经常通过打印信息进行调试,在java中使用的是System.out.println打印到输出窗口。在C语言中使用的是printf打印到输出窗口。而我们用keil进行编程的时候也是使用的C语言所以也可以使用printf,但是我们知道,keil中没有输出窗口。那我

    2024年02月15日
    浏览(34)
  • printf和scanf的串口重定向,格式化输入输出

    通过重定向C标准库的printf和scanf函数,实现串口的格式化输出; 调用MDK微库(MicroLib)的方法和调用标准库的方法。 我们使用的正点原子STM32F103RB NANO开发板上将USART1(引脚为PA9,PA10)接出 USART1并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把 P5 的 RXD 和 TXD 用

    2024年02月04日
    浏览(43)
  • STM32+HAL库调试printf串口打印

    目录 1 新建cubemx工程  2 配置系统时钟 3 配置串口引脚 4 生成keil工程 5 补充代码 5.1 重定向printf 5.2 main函数 6 编译烧录 7 实验现象         选择对应芯片         主频为64MHz         对应给到usart2的时钟也为64MHz            查阅原理图,可知usart2引脚连接了USB串口      

    2024年02月09日
    浏览(39)
  • 使用clion配合STM32CubeMX开发stm32(包含断点调试,查看寄存器值,printf重定向)

    在嵌入式领域中开发以ARM公司的Cortex M内核为代表的单片机时程序员使用最多的IDE一定是Keil公司的MDK4 MDK5,而Keil已经脱离现代智能IDE,近年来IAR逐步向现代智能IDE靠近但还不足,一些芯片原厂提供了基于eclipse改装版IDE,这些工具在调试方面有优势,比如查看外设寄存器,内

    2024年04月24日
    浏览(35)
  • STM32串口printf调试输出(SSCOM V5.13.1)

    PC与CPU相互通信就是通过USB Type_C接口和USB电平转换实现的。 我们可以看到,CPU通过管脚USART1连接CH340C芯片将USB转串口,实现PC与CPU之间的通信。 当然,这里用的是CH340的芯片,我们就需要安装ch340串口。 按住Ctrl+s生成代码。 在usart.h中添加头文件stdio.h 标准库的 printf函数 能方

    2024年02月12日
    浏览(38)
  • STM32使用串口printf乱码问题解决方法

    使用stm32系列单片机串口打印问题,在使用HAL库重新定义printf为串口输出后,输出的内容全都是乱码,试了网上的方法后还是乱码。  像这样的    最后发现是串口调试助手和keil的文字编码方式不同, keil中是GB 2312,串口调试助手是UFT_8,所以打印出来才会乱码  将串口调试助

    2024年02月11日
    浏览(26)
  • stm32---在keil 5中使用printf函数输出到串口USART(printf函数的移植方法)以及补充窗口printf函数输出汉字

    在串口函数初始化的c文件中加上#include stdio.h 重写fputc函数 (fputc是printf函数的底层,printf就是不断调用fputc函数一个个打印,把fputc函数重定向到串口,这样子printf自然就输出到串口) 在主函数main.c编写如下代码后直接运行. 引入#include stdarg.h  对sprintf进行可变参数的函数封装 在主

    2024年02月05日
    浏览(35)
  • STM32CubeIDE串口printf函数输出中文乱码(配置教程+解决方法)

    目录 前言 平台环境 软件:STM32CubeIDE 硬件:STM32H7A3ZIT6Q 一、串口配置 二、printf重定向 三、中文乱码解决方案 步骤 效果 四、总结 本文主要讲述在使用CubeIDE配置串口通信的过程中,如何 重定向printf() 函数,以及如何解决在 串口打印中文时输出乱码 的情况。         

    2024年02月07日
    浏览(34)
  • Python三种标准输出重定向方法

    Python 提供了标准库中的 sys.stdout 对象来代表标准输出。如果我们想将输出重定向到其他位置,例如内存、文件或自定义类,我们可以通过一些技巧来实现。 1. 重定向到内存 要将输出重定向到内存,我们可以使用 StringIO 模块。下面是一个示例:  在上面的示例中,我们首先创

    2024年02月03日
    浏览(27)
  • 关于STM32F4系列中printf重定向问题详解

    前言 关于 printf函数 和 fputc函数 联系和区别 联系: 1.共同目标: printf 函数和 fputc 函数都用于将字符 输出到指定的输出流中 。 2.字符输出: 两个函数都可以用于输出一个字符,但在实际使用时, printf 函数 通常用于输出 格式化的数据 ,而 fputc 函数 更常用于 单个字符的直

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包