在调试代码的时候,最常用的就是使用printf函数来输出一些打印信息,提示自己代码的执行情况。
如果你的UART串口不够用,还要用printf,此时该怎么办?
方法其实是有的,那就是:使用SWO/SWV。
SWO:Serial Wire Output,串行线输出
SWD:Serial Wire Viewer,串行线查看器
一、常见printf输出
1.UART打印

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

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指针的妙用分享
C语言的printf基本用法介绍
薄膜电容器的优点有哪些
STM32的几种开发方式,你都知道吗?(可下载)
串口服务器品牌排名背后,隐藏着的行业潜规则你知道吗?
晶振圈专业名词解释,你都知道吗(下)
LED户外显示屏的五大优势,你知道吗?
磷酸铁锂电池的 “三大克星”,你知道吗?
STM32CubeMX的菜单介绍

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