qq_30463631 2019-09-21 19:31 采纳率: 0%
浏览 1983

OLED显示字符新手求问?

新新手写学习,不知是哪里的问题,有的字符显示不出来,求解答

//显示一个字符    
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.谢谢

  • 写回答

1条回答

  • zqbnqsdsmd 2019-10-02 09:36
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题