打印
[应用相关]

AN0015_补充( Debug printf Viewer相关说明)

[复制链接]
1737|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hoop|  楼主 | 2021-6-6 12:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hoop 于 2022-3-19 14:56 编辑

2.3 经Keil平台的Debug(printf) Viewer虚拟终端输出
2.3.1 简介
Keil平台自带有Debug(printf) Viewer接口,在ARM内核集成有常用的scanf和printf等标准输入输出驱动函数的前提下,该接口可用于标准的Printf交互。
2.3.2 例程路径
003_Printf_Test_Keil_JTDO\project\mdk_v 5
2.3.3 环境及硬件设计
2.3.3.1 环境
本方法需在Keil环境下使用,例程支持的编译环境为Keil_V5,硬件电路板为AT-START-F403A_V1.2
2.3.3.2 硬件连接
J-Link/AT-Link&... connection

2.3.4 软件设计
2.3.4.1 头文件
代码工程文件内添加 “stdio.h”;
2.3.4.2 跟踪引脚分配

DEBUG->ctrl_bit.trace_ioen = FALSE;
DEBUG->ctrl_bit.trace_ioen = TRUE;

2.3.4.3 Printf映射
int fputc(int c, FILE *f)
{
if (c == '\n')  
{
SER_PutChar('\r');
}
return (SER_PutChar(c));
}
int SER_PutChar (int c)
{
ITM_SendChar(c);
return (c);
}
2.3.5 仿真与下载
勾选如下图4中的Enable,并设定Core值,Core值需与系统时钟相等。
设定串口时钟,通常通过勾选如下图4中的Autodetect max SWO C1来实现。当出现打印乱码时,此时可尝试不勾选Autodetect max SWO C1,并手动修改Prescale Core Clk保证打印信息正常。
随后即可编译代码下载到MCU内,然后进入Debug调试环境中,经View->Serial Windows->Debug (printf) Viewer(下图5)调出虚拟终端窗口,然后运行代码即可看到Hello World被实际打印到了终端交互窗口(下图6)内。
图4. Trace相关设定

图5. Keil虚拟终端窗口路径

图6. Keil虚拟终端交互窗口

注:源版AN0015请参考如下路径https://bbs.21ic.com/forum.php?mod=viewthread&tid=2968842&page=1&extra=#pid11194706

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

322

帖子

0

粉丝