0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32的多种printf用法

汽车玩家 来源:csdn 作者:csdn 2021-07-23 11:12 次阅读

在调试代码的时候,最常用的就是使用printf函数来输出一些打印信息,提示自己代码的执行情况。

如果你的UART串口不够用,还要用printf,此时该怎么办?

解决方法:使用SWO/SWV。

  • SWO:Serial Wire Output,串行线输出
  • SWD:Serial Wire Viewer,串行线查看器

一、常见printf输出

  • 1.UART打印

  • 3.IAR EWARM终端输出

  • 4.ST-LINK Utility SWV输出


二、UART映射printf

使用硬件UART串口映射,实现printf打印输出。

#include "stdio.h"

int fputc(int ch, FILE *f)

{

HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

return ch;

}

三、Keil MDK-ARM Viewer输出

  • 针对2、3、4输出

  • 添加代码:

#include "stdio.h" int fputc(int ch, FILE *f) { ITM_SendChar(ch); return ch; }

  • 在Keil的Options中设置

四、IAR EWARM终端输出

  • 1.Oprtins设置

  • 2.SWO配置


五、ST-LINK Utility SWV输出

工具在线查看输出信息,需要上面配置代码,通过ST-Link链接即可。


文章整合自:csdn

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • uart
    +关注

    关注

    22

    文章

    1158

    浏览量

    99952
  • 函数
    +关注

    关注

    3

    文章

    3866

    浏览量

    61308
  • Printf
    +关注

    关注

    0

    文章

    79

    浏览量

    13478
收藏 人收藏

    评论

    相关推荐

    STM32的疑难杂症之一:Printf的使用

    一、Printf简介Printf是一个标准的C库API,用来打印信息显示的。Printf的底层输出调用,在windows环境下是fputc函数,在GNUC环境下是__io_putchar函数
    的头像 发表于 04-02 08:09 191次阅读
    <b class='flag-5'>STM32</b>的疑难杂症之一:<b class='flag-5'>Printf</b>的使用

    求助,关于STM32CUBEIDE1.5.0使用Printf函数的疑问

    基于eclipse的,就把工程弄到STM32CUBEIDE中,但怎么都不OK 自己从新从STM32CUBEMX到STM32CUBEIDE建工程,发现可以烧录进去,LED跑起来了,但是print
    发表于 03-22 06:47

    解决printf无法打印输出的问题

    FreeRTOS中直接使用newlib库是有问题的,相信使用过freertos进行printf都能发现这个问题,这个问题网上有两种方法:1、使用printf.stdarg.c,问题在于,这个库没有
    的头像 发表于 01-04 08:00 739次阅读
    解决<b class='flag-5'>printf</b>无法打印输出的问题

    pcb插针的用法

    pcb插针的用法
    的头像 发表于 12-13 16:58 683次阅读

    C语言printf函数族学习笔记

    printf 应该是学习C语言的第一个函数,我们都知道它是用于字符串格式化输出的。但是它的用法你真正了解了吗?
    的头像 发表于 11-24 11:15 534次阅读
    C语言<b class='flag-5'>printf</b>函数族学习笔记

    c语言printf输出空格间隔

    C语言中,需要在printf输出中添加空格间隔可以通过多种方式实现。这个空格间隔可以用于对输出进行格式化使其更加易读、美观。在接下来的文章中,我将详细介绍如何使用空格来间隔输出以及如何控制输出的对齐
    的头像 发表于 11-24 09:56 3155次阅读

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的头像 发表于 10-27 09:27 441次阅读
    AT32 MCU <b class='flag-5'>Printf</b>的功能使用方法

    如何实现Printf()接口重定向到UART

    车规级MCU开发,不像PC端,包含stdio.h头文件就可以使用Printf()函数。为了实现PC端Printf()接口功能,需要在MCU端实现Printf()接口的"重定向"
    的头像 发表于 10-01 10:13 634次阅读
    如何实现<b class='flag-5'>Printf</b>()接口重定向到UART

    Stream模块的基础用法和进阶用法

    有用。在本教程中,我们将介绍 Stream 模块的基础用法和进阶用法,并提供示例。 基础用法 在本节中,我们将介绍 Stream 模块的基础用法,并提供基础示例。 从 Vec 中创建
    的头像 发表于 09-19 15:33 708次阅读

    SQLx在Rust语言中的基础用法和进阶用法

    SQLx是一个Rust语言的异步SQL执行库,它支持多种数据库,包括MySQL、PostgreSQL、SQLite等。本教程将以MySQL数据库为例,介绍SQLx在Rust语言中的基础用法和进阶用法
    的头像 发表于 09-19 14:32 3054次阅读

    SQLx的基础用法和进阶用法

    SQLx是一个Rust语言的异步SQL数据库访问库,支持多种数据库,包括PostgreSQL、MySQL、SQLite等。本教程将以SQLite为例,介绍SQLx的基础用法和进阶用法。 基础
    的头像 发表于 09-19 14:29 1238次阅读

    STM32printf函数重定向方法

    MicroLib提供了一个有限的stdio子系统,它仅支持未缓冲的stdin、stdout和stderr,那么也就是说勾选了Use MicroLib选项后,在代码工程中就可以使用printf()函数咯?
    的头像 发表于 07-10 16:22 1092次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>printf</b>函数重定向方法

    【笔记】static 在C语言中的用法

    当`static`关键字用于不同的上下文时,其含义和作用也会有所不同。下面是更多示例代码,展示了`static`在不同用法下的具体效果:示例1:静态局部变量#includevoidincrement
    的头像 发表于 06-12 10:03 682次阅读
    【笔记】static 在C语言中的<b class='flag-5'>用法</b>

    printf调试的技巧

    printf调试是嵌入式调试的基本手段,而且是非常重要的手段,我认为相比单步调试更加有用有效
    的头像 发表于 05-10 09:31 539次阅读
    <b class='flag-5'>printf</b>调试的技巧

    请教大神怎么解决STM32中不能使用printf函数的问题呢?

    请教大神怎么解决STM32中不能使用printf函数的问题呢?
    发表于 05-05 10:13