打印
[国产单片机]

大家好,头一次学着写模块化编程,遇到问题了,望高手给与指点,谢谢!!!

[复制链接]
1805|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zezy371|  楼主 | 2015-5-6 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#ifndef __DS1302_H__
#define __DS1302_H__
#include <STC12C5A60S2.H>
#include <STDIO.H>
#include <INTRINS.H>

#ifndef __TYPE__
#define __TYPE__
typedef unsigned int  uint;
typedef unsigned char uchar;
typedef unsigned long ulong;
#endif

#ifndef __DEF__
#define __DEF__
#define u8  unsigned char
#define u16 unsigned int
#define u32 unsigned long
#endif

#ifndef __XIANSHI_ZIXINGKU__
#define __XIANSHI_ZIXINGKU__
/****************共阴数码管数字字形库******************************************/
code uchar smg_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
/****************显示位数据缓存库**********************************************/
code uchar smg_wei0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
code uchar smg_wei1[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

#endif
上面是一个DS1302的模块,已经做了防重复包含,但在编译时出现下面的错误提示,这是为什么呢?

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  smg_wei1
    MODULE:  DS1302.obj (DS1302)
   DEFINED:  TYN_KZQ_STC12C5A60S2_CX.obj (TYN_KZQ_STC12C5A60S2_CX)

相关帖子

沙发
zezy371|  楼主 | 2015-5-6 14:33 | 只看该作者
下面还有很多类似的提示没有一一列出,苦恼死我了

使用特权

评论回复
板凳
zezy371|  楼主 | 2015-5-6 14:35 | 只看该作者
是在keil 2环境下写的,望大家指点,谢谢!!!

使用特权

评论回复
地板
zezy371|  楼主 | 2015-5-6 14:36 | 只看该作者
在这里坐等噢,谢谢各位大神

使用特权

评论回复
5
z_no1| | 2015-5-6 14:41 | 只看该作者
建议你参考UCOSII的风格,虽然也不是很好,但也可以用。

使用特权

评论回复
6
zezy371|  楼主 | 2015-5-6 15:38 | 只看该作者
什么是UCOSII,请解释清楚一些,本人基础太差,谢谢你

使用特权

评论回复
7
chenyu988| | 2015-5-6 16:01 | 只看该作者
头文件中声明,C文件中定义。

使用特权

评论回复
评论
zyj9490 2015-5-6 22:08 回复TA
赞同,可避莫名其妙的问题。 
8
ayb_ice| | 2015-5-6 16:56 | 只看该作者
在C定义,头文件声明

使用特权

评论回复
9
icefox225| | 2015-5-6 20:07 | 只看该作者
还少个#endif吧

使用特权

评论回复
10
思宁| | 2015-5-6 21:29 | 只看该作者
哪有这么写的

使用特权

评论回复
11
思宁| | 2015-5-6 21:30 | 只看该作者
照7 8楼说的

使用特权

评论回复
12
zyj9490| | 2015-5-6 22:07 | 只看该作者
在H文件中,不要有定义,有初始化值就是定义。

使用特权

评论回复
13
xujihu| | 2015-5-6 22:38 | 只看该作者
还少了个#endif

使用特权

评论回复
14
lvyunhua| | 2015-5-7 09:46 | 只看该作者
#ifndef __DS1302_H__
#define __DS1302_H__
#include <STC12C5A60S2.H>
#include <STDIO.H>
#include <INTRINS.H>  
#endif

使用特权

评论回复
15
HORSE7812| | 2015-5-7 10:12 | 只看该作者
头文件中一般没有变量定义吧?

使用特权

评论回复
16
jshengw| | 2015-5-7 14:11 | 只看该作者
#endif

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

241

帖子

0

粉丝