做了好几个基于C51单片机的项目,发现里面都是用串口打印来进行Debug的,使用printf()函数把程序运行的状态通用串口发送到电脑上。
C51 的库函数中包含了printf 函数该函数格式化字符串并把他们输出到标准输出设备对PC 来说标准输出设备就是你的显示设备,对8051 来说是串行口。在这里只有一个显示。就本质来说printf 函数是通过不断的调用putchar 函数来输出字符串的。这样通过重新定义putchar 函数,就可以改变printf 函数,连接器在连接的时候,将使用源代码中的putchar 函数,而不是运行函数库中的函数。
为什么是8051的putchar而不是库函数的putchar,是怎么做到的?
因为在KeilC中,putchar函数有源文件,在C:\Keil\C51\LIB目录有PUTCHAR.C,如果没有自己写putchar()函数,那么就必须把PUTCHAR.C文件包含到项目中。
阅读(2776) | 评论(1) | 转发(0) |