逐步指导:如何驱动电竞墨水屏 /第二篇:全屏刷新
尊敬的各位客户,大家好!
我们的技术小组一直在全力开发墨水屏的教学项目,以期为您呈现一个从零开始驱动墨水屏的完整过程。我们从初学者的角度出发,旨在为您提供简单易懂的指导。
在上期内容中,我们讨论了电竞纸显示屏硬件方面的知识,并收集了一些观众的反馈。作为我们新系列的一部分,接下来我们将陆续填补相关的知识点。
在今天的话题中,我们将探讨电竞纸显示屏的刷新模式。
电竞纸显示屏的刷新初始化代码通常分为三种模式:
1.全刷模式(Full Refresh)
全刷模式是最基本且必要的功能之一,它通过整体性地更新整个屏幕画面来实现刷新。在全刷模式下,屏幕通常会闪烁三次,然后开始进行画面更新。这种闪烁现象是正常的操作特征。
在实际应用中,全刷模式的最显著特点之一是其对清屏保护屏幕的作用。这种模式有助于减少残留图像,延长显示屏的使用寿命。因此,加入全刷模式是确保屏幕正常运行并保护其性能的关键步骤。
2.快刷模式(Fast Refresh)
这种模式下,屏幕进行快速更新,也称为高刷新率。最显著的特征是屏幕只会闪烁一次,然后在大约1到1.5秒内完成新画面的更新。
3.局刷模式(Partial Refresh)
在局刷模式下,屏幕的局部区域会快速地更新,通常在0.3秒左右完成一次。局刷对于墨水屏实现更多可能性至关重要。
以下是一个示例代码,演示了如何在电竞纸显示屏上执行全刷操作:
(请注意,这只是一个简单的示例代码,实际的代码可能会根据具体的电竞纸显示屏型号和控制器而有所不同)
void EPD_HW_Init(void)
{
EPD_W21_RST_0; // Module reset
delay_xms(10);//At least 10ms delay
EPD_W21_RST_1;
delay_xms(10); //At least 10ms delay
Epaper_READBUSY();
Epaper_Write_Command(0x12); //SWRESET
Epaper_READBUSY();
Epaper_Write_Command(0x01); //Driver output control
Epaper_Write_Data(0xF9);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x11); //data entry mode
Epaper_Write_Data(0x01);
Epaper_Write_Command(0x44); //set Ram-X address start/end position
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x0F); //0x0F-->(15+1)*8=128
Epaper_Write_Command(0x45); //set Ram-Y address start/end position
Epaper_Write_Data(0xF9); //0xF9-->(249+1)=250
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x3C); //BorderWavefrom
Epaper_Write_Data(0x05);
Epaper_Write_Command(0x21); // Display update control
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x80);
Epaper_Write_Command(0x18); //Read built-in temperature sensor
Epaper_Write_Data(0x80);
Epaper_Write_Command(0x4E); // set RAM x address count to 0;
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x4F); // set RAM y address count to 0X199;
Epaper_Write_Data(0xF9);
Epaper_Write_Data(0x00);
Epaper_READBUSY();
}
以下是一个更简化的示例代码,展示了如何在电竞纸显示屏上执行全刷操作:
void EPD_HW_Init(void)
{
EPD_W21_RST_0; // Module reset
delay_xms(10);//At least 10ms delay
EPD_W21_RST_1;
delay_xms(10); //At least 10ms delay
Epaper_Write_Command(0x12); //SWRESET
Epaper_READBUSY();
Epaper_Write_Command(0x21); // Display Update Control
Epaper_Write_Data(0x00);
Epaper_Write_Data(0x00);
Epaper_Write_Command(0x20);
Epaper_READBUSY();
}
在准备使用电竞纸显示屏时,我们需要对其进行下述设置,以确保其可以正常运行:
▍初始化屏幕
在开始操作前,需要对屏幕进行初始化设置,以确保其正常运行
▍获取屏幕状态
通过读取屏幕状态寄存器来确定当前屏幕的状态。在此示例中,我们检查是否处于空闲状态(IDLE)
▍写入 Display Update Control 寄存器
如果屏幕处于空闲状态,接下来就会向 Display Update Control 寄存器写入相应的值,以配置显示模式。在这个示例中,我们使用正常显示模式,因此将相关的寄存器写入值为 0x00
▍激活显示设置
最后,通过向控制寄存器写入 0x20,激活显示设置,使之生效
在这里,我们避免过多详细解释每个指令和数据的含义,您可以参考相关的 IC 数据手册或者电竞纸产品规格书来了解更多细节,感谢您的理解和配合。
另外,您也可以阅读这篇博客文章,其中对使用的指令和程序流程图进行了初步介绍,可能会解答您的一些疑问:
根据规格书流程图和指令表编写您的电竞纸驱动程序 (Arduino-IDE)
我们诚挚邀请各位尊敬的用户,尝试使用简化的代码替换原始示例中的相关部分,并观察其是否仍然能够成功实现屏幕更新画面的功能。若您在此过程中遇到任何疑问或需求进一步协助,请随时通过邮件或我们官网提供的 Tidio 聊天工具或留言板与我们联系。我们真诚期待并欢迎您的反馈和意见,以帮助我们持续改进和完善产品服务。
相关资讯
您可以点击此处或者导航栏中的企业定制服务,快速提交您对我们的需求!我们会及时回复并跟进处理。
扫二维码用手机看