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

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

3天内不再提示

基于STM32的多种printf用法 你都知道吗?

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-29 17:02 次阅读

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

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

方法其实是有的,那就是:使用SWO/SWV。

SWO:Serial Wire Output,串行线输出

SWD:Serial Wire Viewer,串行线查看器

一、常见printf输出

1.UART打印

这种使用UART串口输出,需要占用一个硬件串口。

2.Keil MDK-ARM Viewer输出

3.IAR EWARM终端输出

4.ST-LINK Utility SWV输出

这后面三种不占用硬件UART,使用ITM机制。

二、UART映射printf

这种方法应该很多人都知道,就是使用硬件UART串口映射,实现printf打印输出。

对于Keil、 IAR,只需要添加如下代码,就可以使用printf函数:

#include "stdio.h"int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF); return ch;}

意思就是将UART输出(串口输出一个字符)进行映射。

三、Keil MDK-ARM Viewer输出

针对2、3、4输出:

添加代码:

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

在Keil的Options中设置:

提示:Core Clock内核时钟要和你实际时钟对应。

四、IAR EWARM终端输出

1.Oprtins设置:

2.SWO配置

五、ST-LINK Utility SWV输出

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

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

    关注

    2239

    文章

    10670

    浏览量

    348709
  • 串行
    +关注

    关注

    0

    文章

    230

    浏览量

    33530
  • Printf
    +关注

    关注

    0

    文章

    79

    浏览量

    13478
收藏 人收藏

    评论

    相关推荐

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

    一、Printf简介Printf是一个标准的C库API,用来打印信息显示的。Printf的底层输出调用,在windows环境下是fputc函数,在GNUC环境下是__io_putchar函数
    的头像 发表于 04-02 08:09 187次阅读
    <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

    烘缸轴头磨损的原因大家知道吗

    电子发烧友网站提供《烘缸轴头磨损的原因大家知道吗.docx》资料免费下载
    发表于 01-23 09:53 0次下载

    SMT丝印技术的历史发展的四个阶段,你知道吗

    SMT丝印技术的历史发展的四个阶段,你知道吗
    的头像 发表于 12-27 10:15 212次阅读

    运算放大器的种类都有哪些?你知道吗

    运算放大器的种类都有哪些?你知道吗
    的头像 发表于 12-13 15:14 391次阅读
    运算放大器的种类都有哪些?你<b class='flag-5'>知道吗</b>?

    5大高精密多层pcb的特点你知道吗

    5大高精密多层pcb的特点你知道吗
    的头像 发表于 12-08 16:10 421次阅读

    肖特基二极管4大特性,你都知道吗

    肖特基二极管4大特性,你都知道吗
    的头像 发表于 12-07 16:29 349次阅读
    肖特基二极管4大特性,你都<b class='flag-5'>知道吗</b>?

    C语言printf函数族学习笔记

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

    pcb菲林是什么?这5个作用你知道吗

    pcb菲林是什么?这5个作用你知道吗
    的头像 发表于 11-22 11:14 2929次阅读

    无源与有源器件的这些区别你都知道吗

    无源与有源器件的这些区别你都知道吗
    的头像 发表于 10-26 15:27 4195次阅读
    无源与有源器件的这些区别你都<b class='flag-5'>知道吗</b>?

    PCB元器件摆放的十条小技巧,你都知道吗

    PCB元器件摆放的十条小技巧,你都知道吗
    的头像 发表于 10-17 14:52 1785次阅读
    PCB元器件摆放的十条小技巧,你都<b class='flag-5'>知道吗</b>?

    充电桩线路板的三个特别之处,你知道吗?它们可能影响你的充电体验

    充电桩线路板的三个特别之处,你知道吗?它们可能影响你的充电体验
    的头像 发表于 10-12 10:38 711次阅读

    嵌入式学习路线知道吗

    嵌入式学习路线知道吗? 1打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。特别是C语言
    发表于 06-14 16:00

    磁悬浮玩具的控制原理有人知道吗

    磁悬浮控制原理有人知道不,分享分享 磁悬浮玩具的控制原理有人知道吗
    发表于 06-14 07:40

    ESD模型有哪几种你知道吗

    ESD模型有哪几种你知道吗
    的头像 发表于 05-09 10:00 1166次阅读
    ESD模型有哪几种你<b class='flag-5'>知道吗</b>?