本帖最后由 jinglixixi 于 2020-7-5 08:07 编辑
在官网的例程中,提供了W25D16读写的程序,掌握它的使用可用于中文字库的构建。 在功能测试时发现其输出内容如图1所示,并未能完成正确的读写操作。
图1 测试输出内容
后经原理图的观察才发现,W25D16的片选端是接到SW2上,出厂时是置于断开状态,故影响正常读写。
图2 W25D16读写原理图
将SW2置到连接状态后,即可见到正确的读写效果,如图3和图4所示。
图3 读写效果
图4 读写效果
2. 中文字库的构建 对于普通的显示屏显然是不提供中文字库的,因此要显示中文就必须自行构建一个小字库来解决问题。 由于开发板上配置了W25D16,就可以用它来存放中文字库。 在中文字库的提取方面,可以用3310液晶显示屏汉字提取程序来实现,如图5所示。 图5 汉字提取
在字模数据量较少时,可使用内存来存放字模,进而转储到W25D16。而对于字模数据量较大的情况,则需要分批次来转存或采用通讯传输文件的方式来转储。 以内存转储为例,其方法是: 1)将字模存入数值 unsigned char tmp1[256]={ 0x00,0x00,0xE0,0x9C,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x06,0x40,0x80,0x7F,0x00,0x00,0x02,0x04,0x08,0x30,0x00,0x00, ... ... 0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0x10,0xFF,0x10,0x10,0x11,0x16,0x10,0x00,0x00,0x20,0x60,0x20,0x3F,0x10,0x10,0x10,0x00,0x03,0x0C,0x10,0x20,0x40,0xF8,0x00, }; 2)使用SPIM_PageProgram(0,tmp1,256)语句执行转储 3)使用SPIM_PageRead(0,rxtmpdata,256) 语句读取,并通过如下语句进行验证,其效果如图6所示。 for(i=0;i<256;i++) { printf("rx[%d]=0x%x\r\n",i,rxtmpdata); }
图6 验证效果
4)在OLED 屏上加以验证,其效果如图7所示 图7 显示效果 |