打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于STM32的多种printf用法,你都知道吗?

在调试代码的时候,最常用的就是使用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, 10xFFFF); 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链接即可。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
printf系列教程05
嵌入式开发输出调试和日志信息的几种方法
【新提醒】Error[Pe020]: identifier “FILE” is undefined 解决方案
一文了解串口打印
EEDrone开源四旋翼从零开始(4)--DEMO开发
解放串口之重定向printf输出到IAR虚拟终端
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服