成都世迅网站建设,外贸企业网站建设公司价格,h5页面的制作工具,地税局网站建设情况汇报如题#xff0c;本人不太熟悉GCC#xff0c;特别是定义在flash和eeprom的数据#xff0c;所以在做液晶的字库时遇到问题#xff0c;讲解下思路#xff1a;用查表的方式#xff0c;定义一个结构体来装载字符的内码和字符数据。程序如下#xff1a;/*********************…如题本人不太熟悉GCC特别是定义在flash和eeprom的数据所以在做液晶的字库时遇到问题讲解下思路用查表的方式定义一个结构体来装载字符的内码和字符数据。程序如下/*******************************************字库定义******************************/// ------------------ 汉字字模的数据结构定义 ------------------------ //struct typFNT_GB32 // 汉字字模数据结构{unsigned char Index[3]; // 汉字内码索引unsigned char Msk[128]; // 点阵码数据};/// 汉字字模表 //// 汉字库: 宋体32.dot,横向取模左高位,数据排列:从左到右从上到下 ///struct typFNT_GB32 codeGB_32[] PROGMEM{ // 数据表/*-- 文字: 彩 --*//*-- 宋体22; 此字体下对应的点阵为宽x高30x29 --*//*-- 宽度不是8的倍数现调整为宽度x高度32x29 --*/{{彩},{0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x1F,0xC0,0xC0,0x03,0xFF,0xC1,0xE0,0x3F,0xE0,0x03,0xE0,0x00,0xE3,0xC7,0xC0,0x18,0xF3,0xCF,0x00,0x1E,0x7B,0x9E,0x00,0x0F,0x7F,0x3C,0x00,0x07,0x37,0xF0,0x00,0x07,0x6E,0xC0,0x60,0x02,0x7C,0x00,0xF0,0x00,0x70,0x81,0xF0,0x3F,0xFF,0xC3,0xC0,0x3F,0xFF,0xEF,0x80,0x01,0xF0,0x1E,0x00,0x01,0xF8,0x78,0x00,0x03,0xFC,0xF0,0x70,0x03,0xFF,0x80,0xF8,0x07,0xF7,0x81,0xF8,0x07,0x77,0x83,0xE0,0x0E,0x73,0x87,0xC0,0x1C,0x71,0x8F,0x00,0x38,0x70,0x3E,0x00,0x30,0x70,0xF8,0x00,0x60,0x73,0xE0,0x00,0x00,0x7F,0x80,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},}/******************************读取字库送显***************************************/void PutGB3232(unsigned short x, unsigned short y, unsigned char c[2], unsigned int fColor,unsigned int bColor,uint8 b_en){unsigned int i,j,k;LCD_SetPos(x, x32-1,y, y32-1);for (k0;k50;k) { //15标示自建汉字库中的个数循环查询内码if ((pgm_read_byte(codeGB_32[k].Index[0])c[0])(pgm_read_byte(codeGB_32[k].Index[1])c[1])){for(i0;i128;i) {unsigned short mpgm_read_byte(codeGB_32[k].Msk);for(j0;j8;j) {if((m0x80)0x80) {Write_Data_U16(fColor);}else if(b_en) {Write_Data_U16(bColor);}m1;}}}}}我试着把数据定义在内存里面就是把 PROGMEM 和 pgm_read_byte 去掉液晶能正常的显示汉字但是当我把字库定义在flash里面的时候就读不出数据了我知道问题出现在结构体的定义和数据的读取那里但是我不知道怎么改求各位帮帮忙解决下好吗小弟万分感激