初级会员

- 积分
- 122
- 金钱
- 122
- 注册时间
- 2017-7-9
- 在线时间
- 21 小时
|

楼主 |
发表于 2018-8-10 14:19:37
|
显示全部楼层
已解决,我在每个oled显示函数的入口参数里增加一项mode,1表示正常显示,0表示反白
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size,u8 mode)
{
unsigned char c=0,i=0;
c=chr-' ';//μÃμ½Æ«òÆoóμÄÖμ
if(mode){
if(x>Max_Column-1){x=0;y=y+2;}
if(Char_Size ==16)
{
OLED_Set_Pos(x,y);
for(i=0;i<8;i++)
OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
OLED_Set_Pos(x,y+1);
for(i=0;i<8;i++)
OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
}
else {
OLED_Set_Pos(x,y);
for(i=0;i<6;i++)
OLED_WR_Byte(F6x8[c][i],OLED_DATA);
}
}else
{
if(x>Max_Column-1){x=0;y=y+2;}
if(Char_Size ==16)
{
OLED_Set_Pos(x,y);
for(i=0;i<8;i++)
OLED_WR_Byte(~F8X16[c*16+i],OLED_DATA); //模式0,这里的F8X16要取反
OLED_Set_Pos(x,y+1);
for(i=0;i<8;i++)
OLED_WR_Byte(~F8X16[c*16+i+8],OLED_DATA); //模式0,这里的F8X16要取反
}
else {
OLED_Set_Pos(x,y);
for(i=0;i<6;i++)
OLED_WR_Byte(~F6x8[c][i],OLED_DATA); ///模式0,这里的F8X16要取反
}
}
}
其他调用到这条函数的也要做相应修改 |
|