本帖最后由 jinglixixi 于 2020-7-5 08:07 編輯
在官網(wǎng)的例程中,提供了W25D16讀寫的程序,掌握它的使用可用于中文字庫的構(gòu)建。 在功能測(cè)試時(shí)發(fā)現(xiàn)其輸出內(nèi)容如圖1所示,并未能完成正確的讀寫操作。
圖1 測(cè)試輸出內(nèi)容
后經(jīng)原理圖的觀察才發(fā)現(xiàn),W25D16的片選端是接到SW2上,出廠時(shí)是置于斷開狀態(tài),故影響正常讀寫。
圖2 W25D16讀寫原理圖
將SW2置到連接狀態(tài)后,即可見到正確的讀寫效果,如圖3和圖4所示。
圖3 讀寫效果
圖4 讀寫效果
2. 中文字庫的構(gòu)建 對(duì)于普通的顯示屏顯然是不提供中文字庫的,因此要顯示中文就必須自行構(gòu)建一個(gè)小字庫來解決問題。 由于開發(fā)板上配置了W25D16,就可以用它來存放中文字庫。 在中文字庫的提取方面,可以用3310液晶顯示屏漢字提取程序來實(shí)現(xiàn),如圖5所示。 圖5 漢字提取
在字模數(shù)據(jù)量較少時(shí),可使用內(nèi)存來存放字模,進(jìn)而轉(zhuǎn)儲(chǔ)到W25D16。而對(duì)于字模數(shù)據(jù)量較大的情況,則需要分批次來轉(zhuǎn)存或采用通訊傳輸文件的方式來轉(zhuǎn)儲(chǔ)。 以內(nèi)存轉(zhuǎn)儲(chǔ)為例,其方法是: 1)將字模存入數(shù)值 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)語句執(zhí)行轉(zhuǎn)儲(chǔ) 3)使用SPIM_PageRead(0,rxtmpdata,256) 語句讀取,并通過如下語句進(jìn)行驗(yàn)證,其效果如圖6所示。 for(i=0;i<256;i++) { printf("rx[%d]=0x%x\r\n",i,rxtmpdata); }
圖6 驗(yàn)證效果
4)在OLED 屏上加以驗(yàn)證,其效果如圖7所示 圖7 顯示效果 |