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
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371050
  • 串行
    +关注

    关注

    0

    文章

    256

    浏览量

    35188
  • Printf
    +关注

    关注

    0

    文章

    84

    浏览量

    14625
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C指针的妙用分享

    1、知道吗?指针其实是个天生的数学家!看这个: #include int main() { int arr[] = {10, 20, 30, 40, 50}; int *p = arr
    发表于 11-17 06:35

    C语言的printf基本用法介绍

    中使用频率最高的一个函数一点也不为过,每个C语言程序员都应该掌握 printf用法,这是最基本的技能。 不过 printf用法比较灵活,也比较复杂,初学者知识储备不足,不能一
    发表于 11-12 07:04

    薄膜电容的关键词是什么知道吗

    薄膜电容是一种以金属箔作为电极,以聚乙酯、聚丙烯、聚苯乙烯等塑料薄膜作为电介质的电容器,在电子电路中具有重要作用。薄膜电容有哪些关键词知道吗
    的头像 发表于 10-13 15:30 273次阅读
    薄膜电容的关键词是什么<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>?

    知道板卡厂商参与芯片研发的α阶段意味着什么?

    大家知道芯片很重要,但是否知道一颗芯片从设计构思到最终量产,需要经历怎样一个漫长的过程吗?
    的头像 发表于 09-24 17:08 7246次阅读
    <b class='flag-5'>你</b><b class='flag-5'>知道</b>板卡厂商参与芯片研发的α阶段意味着什么?

    LED亮度含义知道吗

    选购LED灯具或LED显示产品时,“亮度够不够”往往是人们考量的重要因素。
    的头像 发表于 09-23 17:42 1489次阅读

    工控机和电脑的区别有多大?知道吗

    工控机和电脑在我们的生活和工作中都扮演着重要角色,但它们之间存在着诸多区别。下面我们就来详细探讨一下。
    的头像 发表于 09-13 11:15 5653次阅读
    工控机和电脑的区别有多大?<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>

    薄膜电容器的优点有哪些

    薄膜电容器虽然理论上有很多种材质,我们实际生产时主要有CBB金属化聚丙烯薄膜电容和CL金属化聚酯薄膜电容两种类型,它是电路上极重要的一类电子元器件,大部分电路离不开它们,薄膜电容器的优点有哪些,真的
    的头像 发表于 07-21 16:03 808次阅读

    STM32的几种开发方式,知道吗?(可下载)

    经常有人会问,你们 STM32 编程是用库函数 还是用寄存器的...会说库函数方便,容 易,都用库函数...等等这样的问题,今天我们就来 dis 一下这几种编程方式,STM32 编程 目前常见的几种
    发表于 04-03 11:24 0次下载

    串口服务器品牌排名背后,隐藏着的行业潜规则知道吗

    在科技飞速发展的当下,串口服务器作为连接串口设备与网络的重要桥梁,在工业、金融、交通等众多领域都有着广泛应用。市场上的串口服务器品牌繁多,各种品牌排名也让人眼花缭乱。但是否想过,这些排名背后可能
    的头像 发表于 03-27 13:09 486次阅读

    晶振圈专业名词解释,知道吗(下)

    晶振在最低阶振动模式下产生的频率,也就是它的“主振动频率”。基频是晶振最基础、最主要的振动频率,其他振动模式(如泛音)都是基于基频的倍数或衍生。基频决定了晶振的核心工作频率。
    的头像 发表于 03-19 17:03 998次阅读
    晶振圈专业名词解释,<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>知道吗</b>(下)

    晶振圈专业名词解释,知道吗(上)

    晶振是晶体振荡器的简称,是一种利用石英晶体的压电效应产生稳定振荡频率的电子元件
    的头像 发表于 03-18 16:22 1156次阅读
    晶振圈专业名词解释,<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>知道吗</b>(上)

    LED户外显示屏的五大优势,知道吗

    LED户外显示屏的五大优势,知道吗? LED户外显示屏在城市的夜晚中扮演着越来越重要的角色,其鲜艳的色彩、生动的画面为城市增添了一抹亮色。那么,LED户外显示屏的显示效果到底如何呢?让我们一起
    的头像 发表于 01-06 18:20 1308次阅读

    磷酸铁锂电池的 “三大克星”,知道吗

    了解磷酸铁锂电池害怕的这三个因素,并且在日常使用中加以注意,就能让我们的电池保持良好的性能,延长使用寿命,同时也保障了使用过程中的安全。无论是开电动汽车出行,还是使用各类锂电池储能设备,都能更加安心、高效。
    的头像 发表于 12-26 17:15 1.1w次阅读
    磷酸铁锂电池的 “三大克星”,<b class='flag-5'>你</b><b class='flag-5'>知道吗</b>?

    STM32CubeMX的菜单介绍

    相信初学者打开STM32CubeMX一定是一脸懵逼,里面都是全英文的,不知道从何入手。这里先给大家简单讲解一下。在新建工程这一栏里,我们最常用的是第一个,它会弹出一个芯片列表供选择,然后就会创建一
    的头像 发表于 12-25 21:03 691次阅读
    <b class='flag-5'>STM32</b>CubeMX的菜单介绍

    stdio.h实现了printf函数?

    我们平时包含的 stdio.h 头文件,里面是不是实现了 printf 函数? 为什么会有这个疑问?因为每次使用 printf,就得包含 stdio.h ,这就导致很多同学误以为,stdio.h
    的头像 发表于 12-18 10:28 866次阅读