网站cms,阿里巴巴国际贸易网站官网,网站建设.龙兵科技,无锡建网站转载请注明出处#xff1a;http://blog.csdn.net/qq_26093511/article/details/53099262 最近在做一个led显示屏的项目#xff0c; 我想显示 “常”#xff0c;“州”#xff0c;“大”#xff0c;“学”这几个字#xff0c;但是只能显示 “常” 和 “大”#xff0c;… 转载请注明出处http://blog.csdn.net/qq_26093511/article/details/53099262 最近在做一个led显示屏的项目 我想显示 “常”“州”“大”“学”这几个字但是只能显示 “常” 和 “大”其他两个字是乱码。坑啊一直在查找问题所在但是一直没找到试了各种方法换查找字库的索引修改变量类型但是还是不行 下面是部分代码 unsigned char xdata Font_H,Font_L;unsigned long xdata addr;unsigned char col ,num;io_init(); //time0_init();variable_init();for(col0;col4;col){Font_L chepai[col][0];Font_H chepai[col][1];addr (unsigned long)(Font_L-0xa1)*0xbc0;addr addr (Font_H-0xa1)*0x20;// for(num 0; num32;num){W25Q16_Read(addr ,Tmp[col],32);}} 经过仿真发现 “常” 的索引字是 0x0000D3C0 “州”索引值是0x00027640 “大“的索引值是0x0000E980”学“的索引值是0x000234C0 我们发现常大是16位的而州和学超过了16位而显示乱码所以猜测 数据溢出定义的变量类型太小。而unsigned long 就是32位的所以索引的地址变量没问题进而猜测 W25Q16的底层读函数有点问题我们进入 void W25Q16_Read(unsigned int address,uchar *date,uchar j) , 发现了问题所在 unsigned int 是16位的所以索引值超过16位就会溢出从而引发错误 只需把 unsigned int 改成 unsigned long 就行了 在此非常感谢郑老师的帮助 转载于:https://www.cnblogs.com/alan666/p/8312084.html