打印
[STM8]

STVD里面的const的定义

[复制链接]
4758|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Rain_King|  楼主 | 2013-12-23 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, tv, TI, os, TE
我在STVD+Cosmi里面定义const常量,即使最简单的也会出错.....我查了一下资料,貌似cosmi使用const有点特殊啊.....
我定义最简单的:
const unsigned char Test=3;
这个就会提示:symbol _Test multiply defined (Debug\function.o)这个错误啊,可是明明没有定义重复 啊.....到底什么问题啊....


沙发
Rain_King|  楼主 | 2013-12-23 16:33 | 只看该作者
对了...我的单片机使用的是STM8S系列的.........

使用特权

评论回复
板凳
lollipooop| | 2013-12-23 17:38 | 只看该作者
未见此异常

使用特权

评论回复
地板
Rain_King|  楼主 | 2013-12-23 17:41 | 只看该作者
lollipooop 发表于 2013-12-23 17:38
未见此异常

但是我把这const定义在函数里面就不会有这个提示.......到底怎么个情况,我定义在全局就会提示重复定义这个提示....

使用特权

评论回复
5
Rain_King|  楼主 | 2013-12-24 08:52 | 只看该作者
难道没有人来帮忙解答么.......不是重复定义的原因啊..............

使用特权

评论回复
6
xxiao6130| | 2013-12-24 09:41 | 只看该作者
这样没有问题,再看看是不是其他地方用到了Test

使用特权

评论回复
7
Rain_King|  楼主 | 2013-12-24 10:26 | 只看该作者
xxiao6130 发表于 2013-12-24 09:41
这样没有问题,再看看是不是其他地方用到了Test

我这个只是个例子而已...其实我的是自己做的一个小型的字库,现在我发现只要多个源文件包括这个字库头文件,就会提示这个错误.......如果只有一个源文件包括这个头文件就木有错.....

使用特权

评论回复
8
善水盈渊| | 2013-12-24 12:08 | 只看该作者
这个还真没遇到过……帮顶

使用特权

评论回复
9
xxiao6130| | 2013-12-24 15:58 | 只看该作者
Rain_King 发表于 2013-12-24 10:26
我这个只是个例子而已...其实我的是自己做的一个小型的字库,现在我发现只要多个源文件包括这个字库头文 ...

是这样的,你要建一个源文件里面这样写:
#ifndef __asm_def_c
#define __asm_def_c
“你的代码”
#endif

使用特权

评论回复
10
s_f_tan| | 2013-12-24 16:52 | 只看该作者
多文件引用的话,最好这样
#ifndef _xxx_
#define _xxx_
const unsigned char Test=3;
#else
extern const unsigned char Test;
#endif

使用特权

评论回复
11
zeluo| | 2013-12-24 20:43 | 只看该作者
这一块   真心没有遇到过   楼主   帮你顶一个   看看高手的指点吧   应该问题不大

使用特权

评论回复
12
Rain_King|  楼主 | 2013-12-25 08:37 | 只看该作者
s_f_tan 发表于 2013-12-24 16:52
多文件引用的话,最好这样
#ifndef _xxx_
#define _xxx_

也只能用这个试试看了

使用特权

评论回复
13
Rain_King|  楼主 | 2013-12-25 08:44 | 只看该作者
xxiao6130 发表于 2013-12-24 15:58
是这样的,你要建一个源文件里面这样写:
#ifndef __asm_def_c
#define __asm_def_c

我先用这个方法试试...........

使用特权

评论回复
14
Rain_King|  楼主 | 2013-12-25 08:46 | 只看该作者
s_f_tan 发表于 2013-12-24 16:52
多文件引用的话,最好这样
#ifndef _xxx_
#define _xxx_

很遗憾的说...不行...
#error clnk Debug\testprogram.lkf:55 Debug\main.o: symbol _FontLibrary multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:55 Debug\main.o: symbol _Font multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:56 Debug\service.o: symbol _FontLibrary multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:56 Debug\service.o: symbol _Font multiply defined (Debug\function.o)
照样提示这个错误....

使用特权

评论回复
15
Rain_King|  楼主 | 2013-12-25 08:47 | 只看该作者
xxiao6130 发表于 2013-12-24 15:58
是这样的,你要建一个源文件里面这样写:
#ifndef __asm_def_c
#define __asm_def_c

很遗憾的说...
#error clnk Debug\testprogram.lkf:55 Debug\main.o: symbol _FontLibrary multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:55 Debug\main.o: symbol _Font multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:56 Debug\service.o: symbol _FontLibrary multiply defined (Debug\function.o)
#error clnk Debug\testprogram.lkf:56 Debug\service.o: symbol _Font multiply defined (Debug\function.o)
这个错误照样是这样子....

使用特权

评论回复
16
Rain_King|  楼主 | 2013-12-25 08:48 | 只看该作者
#ifndef Font_def
#define Font_def

const uint Font[128]=
{
        //0                        1                   2                    3           4                        5                           6            7          
        0X0000,0X0000,0X0002,0X0003,0X0004,0X0005,0X0006,0X0007,
        //8                        9   ht   nl     vt     ff     er     so     si
        0X0008,0X0009,0X000A,0X000B,0X000C,0X000D,0X000E,0X000F,
        //dle  dc1    dc2    dc3    dc4    nak    syn    etb  
        0X0000,0X0011,0X0012,0X0013,0X0014,0X0015,0X0016,0X0017,
        //can  em     sub    esc    fs     gs     re     us
        0X0018,0X0019,0X001A,0X001B,0X001C,0X001D,0X001E,0X001F,
        //sp   !      "      #      $      %      &      `   
        0X0000,0X0021,0X0022,0X0023,0X0024,0X0025,0X0026,0X0027,
        //(    )      *      +      ,      -      .      /
        0X0028,0X0029,0X002A,0X002B,0X002C,0X0040,0X002E,0X002F,
        //0    1      2      3      4      5      6      7   
        0X003F,0X0006,0X005B,0X004F,0X0066,0X006D,0X007D,0X0007,
        //8    9      :      ;      <      =      >      ?
        0X007F,0X0067,0X003A,0X003B,0X003C,0X003D,0X003E,0X003F,
        //@    A      B      C      D      E      F      G   
        0X0040,0X0041,0X0042,0X0043,0X0044,0X0045,0X0071,0X0047,
        //H    I      J      K      L      M      N      O
        0X0048,0X0006,0X004A,0X004B,0X004C,0X004D,0X0037,0X003F,
        //P    Q      R      S      T      U       V     W   
        0X0050,0X0051,0X0077,0X0053,0X0054,0X0055,0X0056,0X0057,
        //X    Y      Z      [      \      ]      ^      _
        0X0058,0X0059,0X005A,0X005B,0X005C,0X005D,0X005E,0X005F,
        //'    a      b      c      d      e      f      g     
        0X0060,0X0061,0X0062,0X0063,0X0064,0X0065,0X0066,0X0067,
        //h    i      j      k      l      m      n      o
        0X0068,0X0069,0X006A,0X006B,0X006C,0X006D,0X006E,0X006F,
        //p    q      r      s      t      u      v      w   
        0X0070,0X0071,0X0072,0X0073,0X0074,0X0075,0X0076,0X0077,
        //x    y      z      {      |      }      ~      del
        0X0078,0X0079,0X007A,0X007B,0X007C,0X007D,0X007E,0X007F
};


const uchar FontLibrary[37]=
{
        //'0'   12*24   36   0-35
        0X00,0X00,0X80,0XC0,0X60,0X20,0X20,0X60,0XC0,0X80,0X00,0X00,
        0X00,0XFE,0XFF,0X01,0X00,0X00,0X00,0X00,0X01,0XFF,0XFE,0X00,
        0X00,0X01,0X07,0X0E,0X18,0X10,0X10,0X18,0X0E,0X07,0X01,0X00,
        //
        0
};

#endif

使用特权

评论回复
17
Rain_King|  楼主 | 2013-12-25 08:49 | 只看该作者
楼上是我的代码.....不要吐槽为啥这样子.....我只是简单的用一下字库而已。。。。。。

使用特权

评论回复
18
lollipooop| | 2013-12-25 11:01 | 只看该作者
把整个工程传上来吧

使用特权

评论回复
19
Rain_King|  楼主 | 2013-12-25 11:21 | 只看该作者
lollipooop 发表于 2013-12-25 11:01
把整个工程传上来吧

工程已上传...文件比较多,请不要吐槽,因为这只是才写部分而已.......很多都只是个架构......至于显示用的是I2C协议,为啥没有用硬件,而是用的软件模拟....硬件决定了.....

TestProgram.zip (495.54 KB)

使用特权

评论回复
20
Rain_King|  楼主 | 2013-12-25 11:23 | 只看该作者
对了........我的这个工程里面有ssd1306驱动,用的是I2C协议.....是驱动好的,可以显示,如果有谁需要,可以参考一下....

使用特权

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

本版积分规则

个人签名:努力学习,积极回复,只为申请版主.......

29

主题

784

帖子

4

粉丝