标准的文件输入输出是不能真正植入微控制器(MCU)的,标准stdio.h的许多内容不可以使用,不过有一些IO函数是被支持的,同样使用之前应用“#include<stdio.h>”预处理,并且需要初始化输出端口,最底层的IO程序是单字符的输入(getchar)和输出(put-char)程序,如果针对不同的装置使用高层的IO函数,例如用printf输出LCD,需要全部重新定义最底层的函数。
为了在ATMEL的AVR Studio模拟器(终端IO窗口)使用标准IO函数,应当在编译选项中选中相应的单选按钮。
注意:作为默认,单字符输出函数putchar是输出到UART装置没有修改,无论如何为使输出能如期望的那样出现在程序终端窗口中,‘\n’字符必须被映射为成对的回车和换行(CR/LF)。
int getchar()使用查寻方式从UART返回一个字符
int printf(char*fmt,..)按照格式说明符输出格式化文本frm字符串,格式说明符是标准格式的一个子集
%d:输出有符号十进制整数;
%o:输出无符号八进制整数;
%x:输出无符号十六进制整数;
%X:除了大写字母使用‘A’~‘F’外,同%x;
%u:输出无符号十进制整数;
%s:输出一个以C中空字符NULL结束的字符串;
%c:以ASCII字符形式输出,只输出一个字符;(www.xing528.com)
%f:以小数形式输出浮点数;
%S:输出在FLASH存储器中的字符串常量。
printf支持3个版本,取决于特别需要和代码的大小(越高的要求,代码越大):
基本型:只有%c、%d、%x、%u和%s格式说明符是承认的;
长整型:针对长整型数的修改%ld、%lu、%lx被支持,以适用于精度要求较高的领域;
浮点型:全部格式包括%f被支持。
使用编译选项对话框来选择版本,代码大小的增加是值得关注的。
int putchar(int c)输出单个字符,这个库程序使用了UART以查寻方式输出单个字符,注意输出‘\n’字符至程序终端窗口。
int puts(char*s)输出以NL结尾的字符串。
int sprintf(char*buf,char*fmt)按照格式说明符输出格式化文本frm字符串到一个缓冲区,格式说明符同printf()。
“const char*”支持功能,cprintf和csprintf是将FLASH中的格式字符串分别以prinf和sprintf形式输出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。