谷动谷力

 找回密码
 立即注册
查看: 1446|回复: 0
打印 上一主题 下一主题
收起左侧

Keil下使用STlink重定向printf的配置

[复制链接]
跳转到指定楼层
楼主
发表于 2023-1-15 00:35:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Keil下使用STlink重定向printf的配置
[size=1.6]

Keil下使用STlink重定向printf的配置

1. printf 重定向

Keil默认下使用Micro LIB库,


该库调用 fputs 实现 printf,所以需要重新定义fputs函数,以重定向printf函数,如下:

1
2
3
4

int fputc(int ch, FILE *f)
{
    ITM_SendChar(ch);
}


只需要在需要打印的位置调用printf即可。

1
2

    HAL_Delay(500);
    printf("Hello world.\n");


2. STM32 ST-LINK Utility配置

打开STM32 ST-LINK Utility,点击ST-Link菜单项,进入Serial Wire Viewer界面如下,配置System clock为单片机运行的时钟,根据实际时钟配置,此处为100MHz,点击Start 即可看到输出。

3. Keil配置

在Keil软件下的Debug配置界面,进入STlink trace的配置,如下图:


配置Core Clock时钟,Trace Enable以及ITM Stimulus Ports。然后调试代码,点击F5运行。如下图所示:

在Debug (printf)Viewer窗口可以看到printf的输出。
如果没有该窗口,通过菜单View调出:

PS:Debug Viewer仅在调试状态下才有,所以在Keil下看日志需要在Debug状态下。

4. 总结
  • 使用STlink 下载,调试很方便,配置简单,不需要使用额外的外设,例如串口,即可实现LOG输出;
  • 在Keil下使用STlink,看代码,日志不需要切换软件,工作更高效。



+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-30 00:04 , Processed in 0.097359 second(s), 41 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表