- 打卡等级:以坛为家I
- 打卡总天数:235
- 最近打卡:2025-05-26 23:18:18
金牌会员
- 积分
- 1315
|
发表于 2024-9-12 11:37:47
|
显示全部楼层
本帖最后由 durongze 于 2024-9-12 11:38 编辑
void Clear_GDRAM(void)
{
unsigned char i,j,k;
LCD12864_Write(Write_Command,Setting_Extended_Instruction_Set_Drawing_Off); // 0x34 功能设定。 高4bit是3都是功能设定。前面第一条指令是0x30,这里是0x34,注意区别。后面详细分析。
k=0x80;
for(i=0; i<32; i++) {
LCD12864_Write(Write_Command,k++); // 从0x80开始循环,循环32次,也就是小于0xA0, 其实就是垂直地址,也就是行。
LCD12864_Write(Write_Command,0x80); // 其实就是水平地址,也就是列
for(j=0; j<16; j++) {
LCD12864_Write(Write_Data,0x00); // 8个 2 字节的数据给绘图 RAM(先高 8 位后低 8 位),也就是总共16字节, 但是为啥写的都是0x00, 算是清屏?
}
}
k=0x80;
for(i=0; i<32; i++) {
LCD12864_Write(Write_Command,k++); // 从0x80开始循环,循环32次,也就是小于0xA0, 其实就是垂直地址,也就是行。
LCD12864_Write(Write_Command,0x88); // 其实就是水平地址,也就是列,这里为什么是0x88? 第一回写用的是0x80, 写了16字节,这里0x88 不会被覆盖吗,因为清屏不影响?
for(j=0; j<16; j++) {
LCD12864_Write(Write_Data,0x00); // 为啥写的都是0x00?
}
}
LCD12864_Write(Write_Command,Setting_Extended_Instruction_Set_Drawing_On); // 0x36 功能设定。 高4bit是3都是功能设定。前面第一条指令是0x30,这里是0x36,注意区别。后面详细分析。
} |
|