美文网首页
[MCS51] Keil Debug 查看 printf 数据

[MCS51] Keil Debug 查看 printf 数据

作者: Ryuusouei | 来源:发表于2018-11-22 15:29 被阅读0次

    Date: 2018/11/22    Author: Ryuusouei

    UART 数据的监看方法

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

    UART 视窗显示的打印信息

    操作步骤:

    1.在主程序中添加代码

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

    putchar 的代码内容(对应 51的串口打印)

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

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

    UART*1 视窗开启的步骤

    3.查看UART打印信息

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

    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 就好了。

    主代码中把 TI 置为 1 輸出信息

    相关文章

      网友评论

          本文标题:[MCS51] Keil Debug 查看 printf 数据

          本文链接:https://www.haomeiwen.com/subject/hbclqqtx.html