欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)

程序员文章站 2024-02-16 12:30:10
...

首先在编程的语法上存在一些问题,记录一下

#ifndef __I2C_H_  //是ifndef不是ifdef!!!!!记下!
  • 是ifndef不是ifdef!!!!!别写错了!!!
    写错的话,报错信息如下(我只贴了一部分,剩下一部分跟这个差不多,你写错了ifndef的话其他文件(如.c文件)会不认你这个自定义头文件。
    单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)
#include"reg51.h"//不包含该文件,你的sbit就会没法用,注意你的头文件调用
//要和主函数的一致!!!!记下!
  • 在自定义头文件中注意你的头文件调用要和主函数的一致,主函数调用reg51.h,自定义头文件中就调用reg51.h!!!!不要不一致
  • 注意函数的大小写!不要.h文件里大写,(头文件对应的).c文件(即头文件名.c)里小写,这是认不出来的!必须统一好了!
    否则就会出现这样的报错信息

MAIN.C(27): warning C206: ‘AT24C02Write’: missing function-prototype
MAIN.C(27): error C267: ‘AT24C02Write’: requires ANSI-style prototype

  • 若头文件里包含了
    typedef unsigned char uc;
    头文件所对应的.c文件(即头文件名.c)里不用再写!
    但主函数里可以重新再定义unsigned char写法!
  • 自定义头文件格式可以借鉴下
#ifndef __IIC_H_  //是ifndef不是ifdef!!!!!记下!
#define __IIC_H_//这两句为自定义头文件的开头格式
//你写的各种变量定义、位定义及函数声明、typedef什么什么等等。
//...
#endif//自定义头文件的结尾格式
  • 一些细节比如要使用的变量的定义不要落下。
  • 然而这种细节也要注意。(头文件不单独搁在Source Group里)
    单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)

(↑正确的文件放置和包含)
单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)
(↑错误的文件放置和包含)

但是我的程序居然是有问题的,数码管根本不怎么亮!reg51.h改reg52.h也不行!
后来检查,发现是该在for循环里面的东西我给写在了for循环外!!!!有些马虎。。。。唉。。。。

  • 说一下建立自定义头文件及头文件附属的(自定义的).c文件并将其囊入项目(组)的过程
    ①左击左上角白纸,新建,保存,格式为.h
    ②重复①,但是格式为.c,注意,.h和.c的文件名必须一致!
    ③左击建立的自定义头文件附属的**.c文件或.h文件**,然后右击Target x的source group x,左击红线上方的这行,你就把.c文件(注意,是.c文件)囊入项目(组)了(所以.h和.c文件的文件名必须一致!!!至于.h文件什么时候囊入项目组,是你.c文件包含其对应的.h文件、main.c里也包含那个.h文件并编译后。这个不必担心)
    单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)
    没囊入前:
    单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)
    囊入后(并左击iic.c的加号):
    单片机IIC总线和EEPROM的学习(包括建立头文件及头文件附属的.c文件并将其囊入项目(组)的过程)

OK。介绍完毕

相关标签: 单片机