中景园电子墨水屏2.13寸黑白双色屏幕 屏幕显示错位(横屏方向起始点偏移)

发布于:2023-01-04 ⋅ 阅读:(276) ⋅ 点赞:(0)

在这里插入图片描述

相同的程序在 红黑白三色 屏幕上不错位,

但是在双色屏幕就错位(如上图)

查DataSheet 之后在例程里找到

//初始化屏幕
void OLED_GUIInit(void)
{
  OLED_RES_Clr();  // Module reset      
  delay_ms(20); //At least 10ms delay 
  OLED_RES_Set(); 
  delay_ms(20); //At least 10ms delay  
    
  Epaper_READBUSY();   
  OLED_WR_REG(0x12);  //SWRESET
  Epaper_READBUSY();   
    
  OLED_WR_REG(0x01); //Driver output control      
  OLED_WR_DATA8(0x27);
  OLED_WR_DATA8(0x01);
  OLED_WR_DATA8(0x01);
	
  OLED_WR_REG(0x11); //data entry mode       
  OLED_WR_DATA8(0x01);

  OLED_WR_REG(0x44); //set Ram-X address start/end position   
  OLED_WR_DATA8(0x00);
  OLED_WR_DATA8(0x0F);    //0x0F-->(15+1)*8=128

  OLED_WR_REG(0x45); //set Ram-Y address start/end position          
  OLED_WR_DATA8(0x27);   //0xF9-->(249+1)=250 
  OLED_WR_DATA8(0x01);
  OLED_WR_DATA8(0x00);
  OLED_WR_DATA8(0x00); 

  OLED_WR_REG(0x3C); //BorderWavefrom
  OLED_WR_DATA8(0x05);  
       
  
  OLED_WR_REG(0x21); //  Display update control
  OLED_WR_DATA8(0x00);  
  OLED_WR_DATA8(0x80);  

  OLED_WR_REG(0x18); //Read built-in temperature sensor
  OLED_WR_DATA8(0x80); 

  OLED_WR_REG(0x4E);   // set RAM x address count to 0;
  OLED_WR_DATA8(0x00);
  OLED_WR_REG(0x4F);   // set RAM y address count to 0X199;
  OLED_WR_DATA8(0x27);
  OLED_WR_DATA8(0x01);
	
  Epaper_READBUSY();	
}

其中

  OLED_WR_REG(0x44); //set Ram-X address start/end position   
  OLED_WR_DATA8(0x00);
  OLED_WR_DATA8(0x0F);    //0x0F-->(15+1)*8=128
//值是对的,但是后一行可疑
  OLED_WR_REG(0x45); //set Ram-Y address start/end position          
  OLED_WR_DATA8(0x27);   //0xF9-->(249+1)=250 
  //但是后一行可疑

而这几行正是设置地址的设置

  OLED_WR_REG(0x4E);   // set RAM x address count to 0;
  OLED_WR_DATA8(0x00);
  OLED_WR_REG(0x4F);   // set RAM y address count to 0X199;
  OLED_WR_DATA8(0x27);

同样这也是相同的可疑之处

试了1小时终于把值试出来了(@中景园官方)

改为设置之内的值

就好了。。。。

改为如下

//初始化屏幕
void OLED_GUIInit(void)
{
  OLED_RES_Clr();  // Module reset      
  delay_ms(20); //At least 10ms delay 
  OLED_RES_Set(); 
  delay_ms(20); //At least 10ms delay  
    
  Epaper_READBUSY();   
  OLED_WR_REG(0x12);  //SWRESET
  Epaper_READBUSY();   
    
  OLED_WR_REG(0x01); //Driver output control      
  OLED_WR_DATA8(0x27);
  OLED_WR_DATA8(0x01);
  OLED_WR_DATA8(0x01);
	
  OLED_WR_REG(0x11); //data entry mode       
  OLED_WR_DATA8(0x01);

  OLED_WR_REG(0x44); //set Ram-X address start/end position   
  OLED_WR_DATA8(0x00);		//X address start L5B
  OLED_WR_DATA8(0x0F);    //X address end L5B 0x0F-->(15+1)*8=128

  OLED_WR_REG(0x45); //set Ram-Y address start/end position 
/*  黑白双色坐标	*/  
  OLED_WR_DATA8(0xF9);   	 
  OLED_WR_DATA8(0x01);		//Y End 0xF9-->(249+1)=250
  OLED_WR_DATA8(0x2E);		//Y Start 00
  OLED_WR_DATA8(0x00); 
/*  黑白红三色坐标	 
  OLED_WR_DATA8(0x27);   //0xF9-->(249+1)=250
  OLED_WR_DATA8(0x01);
  OLED_WR_DATA8(0x00);
  OLED_WR_DATA8(0x00); 
*/

  OLED_WR_REG(0x3C); //BorderWavefrom
  OLED_WR_DATA8(0x05);  
       
  
  OLED_WR_REG(0x21); //  Display update control
  OLED_WR_DATA8(0x00);  
  OLED_WR_DATA8(0x80);  

  OLED_WR_REG(0x18); //Read built-in temperature sensor
  OLED_WR_DATA8(0x80); 

  OLED_WR_REG(0x4E);   // set RAM x address count to 0;
  OLED_WR_DATA8(0x00);
  OLED_WR_REG(0x4F);   // set RAM y address count to 0X199;    
  OLED_WR_DATA8(0x27); //27 纸筒接缝处坐标
  OLED_WR_DATA8(0x01); //1
	
  Epaper_READBUSY();	
}
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到