OLED液晶屏如何顯示中文呢
掃描二維碼
隨時隨地手機看文章
序言
之前我們分享了,如何使用STM32驅動OLED液晶屏,講了SSD1306控制芯片的驅動,對其驅動時序和常用命令做了介紹,詳細請參考下面鏈接:
上篇中我們已經(jīng)實現(xiàn)在OLED屏上顯示出英文字符,除去數(shù)字、字母、符號等,OLED還能顯示漢字、圖片及任意圖形。今天我們來介紹一下取模軟件的使用,看看如何在OLED屏上顯示中文,具體實現(xiàn)如下。
字幕顯示原理
我們用的OLED液晶屏是由128*64個發(fā)光點陣組成,即分辨率是128*64。
ASCII碼可以6*8、8*8、8*16像素,漢字一般顯示像素為16*16。
一般為了顯示效果理想,英文和數(shù)字常選用8*16像素顯示。

取模軟件
推薦使用比較好用的取模軟件:PCtoLCD2002。
BLACK&WHITE
字模選項設置
BLACK
&WHITE
生成字庫
CK
&WHITE
將生成的字庫信息復制到工程中待用,一般都是把自定義的字庫放到一個單獨的.h文件中。
BLACK&WHITE
硬件連接
測試電路連接:
GND---地
VCC---3.3V
D0---接PB9,作為SPI總線的CLK時鐘引腳,時鐘
D1---接PB8,作為SPI總線的MOSI數(shù)據(jù)引腳,數(shù)據(jù)輸入
RES---接PB7
D/C---接PB6,高電平為寫數(shù)據(jù),低電平為寫命令
CS---片選,接PB5,接地選中SSD1306
代碼實現(xiàn)
顯示漢字函數(shù)實現(xiàn):
其中參數(shù)x為第一個像素在行中的位置,范圍為0-127;
如果一行占8個像素,那么參數(shù)y代表行號,范圍為0-7。
參數(shù)no為咱們自定義字庫數(shù)組中的索引。
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no){ uint8_t t,adder=0; OLED_Set_Pos(x,y); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no][t],OLED_DATA); adder+=1; } OLED_Set_Pos(x,y+1); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA); adder+=1; } }
main函數(shù)實現(xiàn):
int main(void) { int i = 0; //延時函數(shù)初始化 delay_init(); OLED_Init(); OLED_Clear(); //OLED_ShowString(0,4,(u8 *)" 0.96 OLED Demo "); for(i=0;i<8;i++) { OLED_ShowCHinese(i*16,0,i+0); } for(i=0;i<5;i++) { OLED_ShowCHinese(i*16,2,i+8); } for(i=0;i<3;i++) { OLED_ShowCHinese(i*16,4,i+13); } for(i=0;i<7;i++) { OLED_ShowCHinese(i*16,6,i+16); } while(1) { delay_ms(10); } }
測試結果