首页 .新版WINAVR中使用标准I_O流

.新版WINAVR中使用标准I_O流

举报
开通vip

.新版WINAVR中使用标准I_O流 《AVR单片机 GCC程序设计》补充文档 (003) http://www.chipart.cn 关于WinAVR-20060421中的标准输入/输出 WinAVR20060421对标准输入/输出对象连接设备的形势进行了改进,导致本书中多个 例子在WinAVR20060421中无法编译。下面先解释新版本中标准输入/输出的使用方法。 先看 avr-libc使用手册提供的例子: #include static int uart_putchar(cha...

.新版WINAVR中使用标准I_O流
《AVR单片机 GCC程序设计》补充文档 (003) http://www.chipart.cn 关于WinAVR-20060421中的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入/输出 WinAVR20060421对标准输入/输出对象连接设备的形势进行了改进,导致本书中多个 例子在WinAVR20060421中无法编译。下面先解释新版本中标准输入/输出的使用方法。 先看 avr-libc使用手册提供的例子: #include static int uart_putchar(char c, FILE *stream); static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); static int uart_putchar(char c, FILE *stream) { if (c == ’\n’) uart_putchar(’\r’, stream); loop_until_bit_is_set(UCSRA, UDRE); UDR = c; return 0; } int main(void) { init_uart(); stdout = &mystdout; printf("Hello, world!\n"); return 0; } 在默认情况下,fdevopen 以及浮点数转换的printf和 scanf都需要动态内存分配(malloc), 这将连接动态内存分配模块,导致代码膨胀,如果系统中不使用浮点数转换,通过使用上面 的方法连接设备可以避免连接动态内存分配模块,这对于资源有限的单片机系统是难得的。 替代 fdevopen函数的是宏 FDEV_SETUP_STREAM ,它将初始化一个标准的 i/o对象(上 例中为 mystdout),由于这个对象是用户定义的变量,固然无需动态分配内存。FILE是标准 I/O 流使用的数据结构,stdin,stdout,stderr 均为指向 FILE 结构的指针。正如上面的 main 函 数中那样标准流对象 stdout 指向用户定义的流对象数据结构后 printf可以正常使用了。此时 不能用 fclose关闭,如果需要关闭的话使用 fdev_close。 关于宏 FDEV_SETUP_STREAM和相关参数说明请参考 avr-libc用户手册。下面是书 中相关示例的三种处理方法: 1. 使用WinAVR20060421之前版本编译。 2. 包含 stdio.h文件之前定义宏 __STDIO_FDEVOPEN_COMPAT_12 如: #define __STDIO_FDEVOPEN_COMPAT_12 #include 。。。。。。。。。。。。。。 这一种方法与前一种方法效果是一样的。意思是该宏的意思是兼容 avr-libc1.2版本。 3.修改代码使用新的方法连接设备. 《AVR单片机 GCC程序设计》补充文档 (003) http://www.chipart.cn 第一步:在全局声明 FILE变量并用宏 FDEV_SETUP_STREAM初始化 static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); 第二步:改变 uart_putchar函数参数列表 int uart_putchar(char c, FILE *stream) 第三步:用 stdout = &mystdout;替换 fdevopen的调用。 第三种方法(也是建议在新程序中使用的)它生成的代码量会比前两种方法生成的会更 小。 时间仓促就写到这里了,如有错误之处请到本书网站留言指正!谢谢。 版权所有© 芯艺设计室 保留所有权利 Copyright© www.chipart.cn All Rights Reserved
本文档为【.新版WINAVR中使用标准I_O流】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882325
暂无简介~
格式:pdf
大小:60KB
软件:PDF阅读器
页数:2
分类:互联网
上传时间:2011-05-22
浏览量:20