最近用STM32F103在做OLED屏幕調試出現了一些問題,問題:第一頁的顯示的文字是正常的,但是到了第二也就不正常了,也試著從網上找方法解決,都試了,沒有用,求各位網友解答迷惑,謝謝大家.
第一頁的顯示內容:正常顯示
第二頁的顯示內容:異常顯示
部分代碼如下:
這個是修改過的漢字顯示代碼
//顯示漢字
void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{
u8 t,adder=0;
OLED_Set_Pos(x,y);
if(no < 32)
{
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;
}
}
if(no >= 32)
{
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no-1][t],OLED_DATA); //處理所存放的第33個漢字時,首先寫入第二行數據
adder+=1;
}
OLED_Set_Pos(x,y+1);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
adder+=1;
}
}
}
主程序代碼:
OLED_Init();
OLED_Clear();
OLED_ShowCHinese(0,0,8); //顯示漢字 歡
OLED_ShowCHinese(16,0,9); //顯示漢字 迎
OLED_ShowCHinese(32,0,10); //顯示漢字 使
OLED_ShowCHinese(48,0,11); //顯示漢字 用
OLED_ShowCHinese(64,0,12); //顯示漢字 智
OLED_ShowCHinese(80,0,13); //顯示漢字 能
OLED_ShowCHinese(96,0,14); //顯示漢字 小
OLED_ShowCHinese(112,0,15); //顯示漢字 車
Delay_ms(1000);
OLED_Clear();
OLED_ShowCHinese(32,0,16); //顯示漢字 設
OLED_ShowCHinese(48,0,17); //顯示漢字 計
OLED_ShowCHinese(64,0,18); //顯示漢字 者
OLED_ShowCHinese(80,0,19); //顯示漢字 :
OLED_ShowCHinese(32,3,20); //顯示漢字
OLED_ShowCHinese(62,3,21); //顯示漢字
OLED_ShowCHinese(92,3,22); //顯示漢字
Delay_ms(1000);
OLED_Clear();
OLED_ShowCHinese(0,0,2); //顯示漢字 車
OLED_ShowCHinese(16,0,3); //顯示漢字 速
謝謝大家了
|