|
问题如下:定义: const unsigned int s2[]= { /*------------------------------------------------------------------------------ ; 源文件 / 文字 : 我 ; 宽×高(像素): 16×16 ; 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/32字节 ; 数据转换日期 : 2006-03-23 16:27:39 ------------------------------------------------------------------------------*/ 0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00, 0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00 }; LCD写函数: void Disp(unsigned int x,unsigned int y,unsigned int *a); Disp(0,0,s2); 报错 "main.c", line 89: [E146] pointer argument disagrees with prototype 解决方法 const改成static,即static unsigned int s2[]={} 就对了 我想请问一下是什么问题呢 cmd中是.const: {} > EXTDATA PAGE 1 全局变量是分配到.bss的,考虑到执行的速度.bss在B1 .bss: {} > B1 PAGE 1 B1空间有限,LCD不带字库 方法1解决const为什么不对,请问大家的意见方法2自定义一个section,专门放字库数据,请问在C中如何实现定义的变量分配到指定的空间呢 谢谢 解答如下: 第二个问题用 #pragma DATA_SECTION.... 具体写法请参考手册。 第一个问题,在调用的时候强行转换如何? Disp(0,0,(unsigned int *)s2); 自己回复: 可以了,谢谢 改成这样Disp(0,0,(unsigned int *)s2); |