不知道做单片机开发的朋友们是不是还在用自定义的数据打印函数打印字串呢?如:
- UART_PutString(const char *str);
- UART_PutChar(char ch);
- UART_GetChar();
- UART_GetString(char *str);
其实C标准输入输出库文件中已为我封装好了许多我们需要的函数。只要我们做个简单的移植便可以将它们用上。在库里,我们可以用:格式化输入输出函数。如:puts()、printf()、putchar()、getchar()、scanf()等等。
我们要做的莫非就两点:
- 实现putchar()与getchar()函数。告诉库,你的数据怎么输出去,怎么输入。
- 添加#include<STDIO.H>,并调用库函数便可。
但是,我在做STM32下的程序开发时。发现库并没有提供putchar()与getchar()这么简单的函数。而是:
- int fputc(int ch, FILE * file)
- int fgetc(FILE * file)
其中,FILE结构体在STDIO.H中并没有定义。而只是开放地声名了有那么一个类型,具体是需要程序员自己根据自己的需要定义。
对于小型嵌入式系统的开发,也许你并没有想到“文件”这个层次上来。其实,这里有文件并非完全指的是存储数据的单元。它可以是设备,如显示器、键盘、串口输入输出等等。这些设备都可以被当成文件。我们只要通过FILE区分不同的文件,并对不同的FILE我们可以采集这个文件对应的输出输入方式。这么一来,FILE让我扩展的空间就大了。
这里,我主要是想