Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18989
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-30 10:23
文章分类
文章存档

2015年(2)

我的朋友

分类: 嵌入式

2015-07-30 12:05:30

1.  keilc51的printf函数被系统弄成了库文件(属于静态型),我们是没法修改的,但是他会向下调
    用函数:char putchar(char c),这个函数在安装目录的../C51/LIB/PUTCHAR.C里面。值得注
    意的是,当我们在编译工程时,系统会先到我们的工程目录中找这个文件来编译,如果找不到
    再去安装目录找到编译。
2.因此我们就将安装目录的这个文件(PUTCHAR.C)复制到我们的工程中来,并添加到工程中,
  然后修改里面的内容,这个文件默认是输出51单片机的串口0的,如果我们想把输出流定向到
  LCD12864等显示模块,这时就只需要修改代码,调用LCD的打印字符函数,就好了。这时一个      不错的推荐!!
3.另外注意的是:首先不要乱改动源文件,你只是复制过来就可以。复制过来的文件也不要修改文
  件的名称,因为别人说不定是按文件名来索引的,也不要改里面的函数名,只是改函数里面的内    容而已。

4.源码展示(输出流定向到LCD12864):
     文件名:PUTCHAR.C
  示范内容:
       #include "lcd12864.h"
       char putchar (const char c)
      {
            if (c == '\n')
                /* lcd12864换行 */
           else 
                lcd_send_char(c);
       }

修正:我们复制过来的文件是可以改名字的,但还是要注意里面的函数名字千万不能变的!!
         函数名字在编译后形成符号,在连接阶段,标准库(静态库)所找的就是符号了
阅读(2231) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:ARM的RO,RW,ZI的详解

给主人留下些什么吧!~~