最近用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); //显示汉字 速
谢谢大家了
|