| 你应该是直接转化成0xd6,0xd0存储即可 |
| "中" 在存储时是这样的,0xD6,0XD0,0X00,是三个字节,导致你越界了 |
wlhuang 发表于 2023-4-8 20:40 中文索引放在注释里,不要出现在程序里。 |
Hephaestus 发表于 2023-4-8 19:39 如果把中文索引去掉,就不会提示字符串越界~ |
Hephaestus 发表于 2023-4-8 19:39 修改为: uchar code GB_16[]= { // 显示为12*12 keil提示信息: main.c(215): error C242: 'array[]': too many initializers |
Hephaestus 发表于 2023-4-8 19:39 谢谢!我马上试试~ |
| 213行不要加typFNT_GB16类型,用char型,然后定义一个typFNT_GB16类型的指针指向这个数组就可以用了。 |
|
例程部份代码如下: typedef struct typFNT_GB16 // 汉字字模显示数据结构 { uchar Index[2];//汉字内码索引 uchar Msk[24]; //点阵码数据 }; struct typFNT_GB16 code GB_16[]= { // 显示为12*12 "中",0x04,0x00,0x04,0x00,0x7F,0xC0,0x44,0x40,0x44,0x40,0x44,0x40,0x7F,0xC0,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00, "文",0x08,0x00,0x04,0x40,0xFF,0xE0,0x11,0x00,0x11,0x00,0x11,0x00,0x0A,0x00,0x0A,0x00,0x04,0x00,0x1B,0x00,0xE0,0xE0,0x00,0x00, "测",0x9E,0x20,0x52,0x20,0x12,0xA0,0x96,0xA0,0x56,0xA0,0x56,0xA0,0x56,0xA0,0xD6,0xA0,0x44,0xA0,0x4A,0x20,0x71,0x60,0x00,0x00, "试",0x80,0xC0,0x40,0xA0,0x5F,0xE0,0x00,0x80,0xC0,0x80,0x4F,0x80,0x44,0x80,0x44,0x80,0x57,0xA0,0x6C,0x60,0x40,0x20,0x00,0x00, "液",0x81,0x00,0x5F,0xE0,0x25,0x00,0x85,0xC0,0xAA,0x40,0x4E,0xC0,0x5A,0x40,0x49,0x80,0xC8,0x80,0x49,0x40,0x4E,0x20,0x00,0x00, "晶",0x1F,0x80,0x10,0x80,0x1F,0x80,0x10,0x80,0x1F,0x80,0x00,0x00,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x00,0x00, "显",0x3F,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x3F,0x80,0x00,0x00,0x4A,0x40,0x2A,0x40,0x2A,0x80,0x0B,0x00,0xFF,0xE0,0x00,0x00, "示",0x00,0x80,0x7F,0xC0,0x00,0x00,0x00,0x00,0xFF,0xE0,0x04,0x00,0x14,0x80,0x24,0x40,0x44,0x20,0x84,0x20,0x1C,0x00,0x00,0x00,}; |