基于STM32的多种printf用法

2024-01-29  

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


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

解决方法:使用SWO/SWV。

  • SWO:Serial Wire Output,串行线输出

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

一、常见printf输出

  • 1.UART打印

  • 2.Keil MDK-ARM Viewer输出

  • 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链接即可。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。