新新手写学习,不知是哪里的问题,有的字符显示不出来,求解答
//显示一个字符
void OLED_ShowChar(u8 x,u8 y,u8 chr)
{
unsigned int c=0,i=0;
c=(chr-32)*16; //计算偏移值
if(x>120){x=0;y=y+2;}
OLED_Set_Pos(x,y);
for(i=0;i<8;i++)
OLED_WR_Byte(F8X16[c+i],OLED_DATA);
OLED_Set_Pos(x,y+1);
for(i=0;i<8;i++)
OLED_WR_Byte(F8X16[c+i+8],OLED_DATA);
}
//显示字符串
void OLED_ShowString(u8 x,u8 y,u8 chi[])
{
unsigned char j=0;
// unsigned char x=0,y=0;
while (chi!='\0')
{
OLED_ShowChar(x,y,chi[j]);
x+=8;
if(x>120){x=0;y+=2;}
j++;
}
}
void OLED_DISPLAY()
{
OLED_Clear();
OLED_DIS_CHinese(0,0,0);//可以显示
OLED_DIS_CHinese(18,0,1);//可以显示
OLED_DIS_CHinese(36,0,2);//可以显示
OLED_DIS_CHinese(54,0,3);//可以显示
OLED_DIS_CHinese(72,0,4);//可以显示
OLED_DIS_CHinese(90,0,5);//可以显示
OLED_DIS_CHinese(108,0,6);//可以显示
//OLED_ShowString(0,0,"0123456789abcdefg");//显示不了。
OLED_ShowChar(9,2,'C'); //可以显示
OLED_ShowChar(9,4,'7');//可以显示
OLED_ShowChar(9,6,'#');//不可以显示
}
//这个是字串
const unsigned char code F8X16[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
我试过了,字库前15行是显示不出来的,就是/之前的,0后面是正常的。但前面加再加15行,那15行对应是可以显示的,证明字库应该是没有问题的。就是不知道为什么前15行一个是黑屏。“”号的字符串也是黑屏。
我用赛元 SC92F7545.谢谢