单片机学习:51单片机warning和error

今天遇到一个error,非常的痛苦,keil无法定位只给error。

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  SMALLCHARS
  MODULE:  .\Objects\lcd5110.obj (LCD5110)

SMALLCHARS是定义的字库,单独定义在ziku.h文件中

code unsigned char SmallChars[]=
{
    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,//0   0
    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,//1 
    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,//2  
    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,//3
    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,//4
    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,//5
    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,//6
    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,//7
    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,//8
    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,//9
    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,//A   10
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,//B
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,//C
    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,//D
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,//E
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,//F
    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,//G
    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,//H
    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,//I
    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,//J
    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,//K
    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,//L
    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,//M
    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,//N
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,//O
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,//P
    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,//Q
    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,//R
    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,//S
    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,//T
    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,//U
    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,//V
    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,//W
    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,//X
    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,//Y
    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,//Z   35
                                   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//    36 ¿Õ¸ñ
    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :  37
    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -  38
    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /  39
    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .  40
    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,  41
    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^  42
    0x08, 0x08, 0x08, 0x2A, 0x1C, 0x08,// -> 43
    
    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a  44
    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g                               
    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l 
    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 // z  69
};
		

接着在lcd5110.c中包含ziku.h文件,使用SmallChars数组,然后就出错了。我这是从32上直接移植的,32上没有问题,但是51就是error,我是怎么都不明白会多次定义。后来google了一下啊,发现51不能直接通过包含头文件的方式来使用文件中的全局变量,所以只能通过extern关键字来将ziku.h中定义的全局变量引用到lcd5110.c文件中使用。编译了一下发现可以了。

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?_OLED_WRITE_NUM4?OLED

上面的是警告,一般警告就直接忽略了,但是看着很不舒服,就google了一下,上面的意思是我定义了OLED_WRITE_NUM4这个函数,但是我的程序运行时没有使用。额。。。。这种警告我猜测可能是为了让我们删除不必要的代码,减小code大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值