[MCS51] Keil Debug 查看 printf 数据

Date: 2018/11/22    Author: Ryuusouei

UART 数据的监看方法

        相信许多在开发 8051 硬件的同学在监看 UART 数据时,或是使用 printf 数据时,都是将代码烧录到硬件后,然后再通过【串口调试精灵】来查看打印出来的数据对不对,Ryuu 老师跟各位一样,但是最近老师看到了另一种更为便利的方法,今天我们就来谈谈如何使用 Keil IDE Debug mode 来查看 printf 的数据内容。

[MCS51] Keil Debug 查看 printf 数据_第1张图片
UART 视窗显示的打印信息

操作步骤:

1.在主程序中添加代码

        在使用 printf 函数别忘了要在主代码的开头引用 头文档,然后要你的主程序中添加 “char putchar(char c)” 的子函数,子函数代码如下:

[MCS51] Keil Debug 查看 printf 数据_第2张图片
putchar 的代码内容(对应 51的串口打印)

2.开启 keil 的 UART*1 监控视窗

        进到 keil 的 Debug 模式后,点选 View -》Serial Windows -》UART*1 ,会在 keil 视窗右下角出现 UART*1 的视窗,然后在点击运行后,就可看到视窗内会出现打印信息。

[MCS51] Keil Debug 查看 printf 数据_第3张图片
UART*1 视窗开启的步骤

3.查看UART打印信息

        在Debug模式点选执行(Run)后,就可看到 UART 信息被打印在视窗中了。

[MCS51] Keil Debug 查看 printf 数据_第4张图片
UART 所打印的信息内容

        今天 Ryuu 老师就分享到这边,各位同学在做串口数据的调试处理时,记得让多用这种方法哦,会让你在调试时更为快速方便。


2018/11/27 补充:

        Ryuu老师在查看资料时,了解到为何要设置 “char putchar(char c)” 的子函数内容了。我们在调用 printf 函数时,printf 函数会调用 putchar ,而 “stdio.h” 头文档中原有的 “char putchar(char c)”在发送数据前会先等待 TI=1,所以我们如果没有设置的话,在执行Debug 运行时,会一直卡在这一行,因此无法在 UART 信息框中看到信息被打印出来。

        在本文中的步骤1是为了覆盖原有的 putchar 函数,其代码内容中的 SUBF=c;动作就是为了要把TI设置为1,这样 UART 就可正常打印到画面中。

        最后只是要告知各位,更简单的方法就是,主代码中一开始就把 TI 置为 1 就好了。

[MCS51] Keil Debug 查看 printf 数据_第5张图片
主代码中把 TI 置为 1


[MCS51] Keil Debug 查看 printf 数据_第6张图片
輸出信息

你可能感兴趣的:([MCS51] Keil Debug 查看 printf 数据)