Date: 2018/11/22 Author: Ryuusouei
UART 数据的监看方法
相信许多在开发 8051 硬件的同学在监看 UART 数据时,或是使用 printf 数据时,都是将代码烧录到硬件后,然后再通过【串口调试精灵】来查看打印出来的数据对不对,Ryuu 老师跟各位一样,但是最近老师看到了另一种更为便利的方法,今天我们就来谈谈如何使用 Keil IDE Debug mode 来查看 printf 的数据内容。
操作步骤:
1.在主程序中添加代码
在使用 printf 函数别忘了要在主代码的开头引用 <stdio.h> 头文档,然后要你的主程序中添加 “char putchar(char c)” 的子函数,子函数代码如下:
2.开启 keil 的 UART*1 监控视窗
进到 keil 的 Debug 模式后,点选 View -》Serial Windows -》UART*1 ,会在 keil 视窗右下角出现 UART*1 的视窗,然后在点击运行后,就可看到视窗内会出现打印信息。
3.查看UART打印信息
在Debug模式点选执行(Run)后,就可看到 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 就好了。