浦江一水
发表于 2024-5-31 13:47:52
ryj870925 发表于 2024-5-31 10:23
是这一句吗?
#define OLED_CMD0
不是这句.这是宏定义, 原文是这样的吧?
#define OLED_CMD 0 //写命令
#define OLED_DATA 1 //写数据
宏定义的作用是用比较好理解和记忆的用词来代替一些(不太好记忆的、枯燥的、意义不明确的)变量或数值.
比如有了上述定义后,
凡是用"OLED_CMD"的地方,就代表是用数值0;
凡是用"OLED_DATA"的地方,就代表是用数值1;
关于写字节数的函数OLED_WR_Byte(); 是 oled.c文件中的那个语句..
原文是这样的:(网上流传的)
//========================================================================
// 函数名称: OLED_WR_Byte
// 函数功能: OLED地址/数据写入函数
// 入口参数: @dat:数据 @cmd:命令
// 函数返回: 无
// 当前版本: VER1.0
// 修改日期: 2023 - 6 - 7
// 当前作者: ZCF
// 其他备注:
//========================================================================
void OLED_WR_Byte(u8 dat,u8 cmd)
{
u8 udat ;
udat = dat;
if( cmd==1 )
IIC_Write_NByte(0X78,0x40,udat,1);
else
IIC_Write_NByte(0X78,0x00,udat,1);
}
你看它的位置就是写在延时函数之后, 其它函数之前的, 这样其它函数就可直接调用... 而不一定必须要在头文件中申明的.
这函数的第一个参数dat就是表示所要写入的字节数字,
第二个参数cmd就是表示所写的是命令呢还是一个数值,是一个标识字。
当写作"OLED_CMD"时, 其实就是0, 代表第一参数写的是"命令",
当写作"OLED_DATA"时, 其实就是1, 代表第一参数写的是"数值",
有的地方写 "OLED_CMD" 就是告诉OLED显示屏, 第一参数dat这是指令, 要执行某个动作了...
有的地方写 "OLED_DATA", 就是告诉OLED显示屏, 第一参数dat这是数据, 要写入是数据了...
比如后边OLED_BuffShow()函数, 就用到了"OLED_DATA"。
// 入口参数: @dat:数据 @cmd:命令
这样的写法,可能会使初学者不太好理解.....
浦江一水
发表于 2024-5-31 14:02:18
科学妞妞 发表于 2024-5-31 09:20
基于屠龙刀板子
屏是1.8128*160RGB-TFT ic:ST77358,
目前,常见的一种显示屏,网络上有很多stc ...
明白了。 这屏现在是比较常用,我的《新手学用....》第22楼的实验内容,也是7735驱动的,基本是可以参考使用的。
只要对照屠龙刀电路板的显示屏端口,改一下端口定义就可以了,原文就是这里几句:
//================================================================
// 接口定义: 利用LCD1602接口(反相排序)(根据实际电路板情况定义)
// 1602:K- A+D7D6D5D4D3D2 D1 D0 E WR RS Vo VCC GND
// OLED: GND VCC SCL SDA RES DCCSBL
//================================================================
sbit SCL = P0^7;//时钟端
sbit SDA = P0^6;//数据端
sbit RES = P0^5;//复位端 0:复位
sbitDC= P0^4;//0:指令/1:数据
sbitCS= P0^3;//片选 0:选中
sbitBL= P0^2;//背光 0:灭 1:亮
//========================================================
先试试看。。。
科学妞妞
发表于 2024-5-31 19:29:33
浦江一水 发表于 2024-5-31 14:02
明白了。 这屏现在是比较常用,我的《新手学用....》第22楼的实验内容,也是7735驱动的,基本是可以参考 ...
了解,先学习改改,坐等一水楼主新作更新的到来。
浦江一水
发表于 2024-6-1 19:53:34
科学妞妞 发表于 2024-5-31 19:29
了解,先学习改改,坐等一水楼主新作更新的到来。
“基于屠龙刀板子 + 屏是1.8128*160RGB-TFTic:ST7735”
手头正好也有这样的硬件配置。就匆匆编写了一段实验程序,供参考。
工程文件包以及简单说明,上传发布在【LCD12864】版块,有空下载试试看。若有问题,留言即可。
注意,这块彩色显示屏是8针引脚的,屠龙刀三板子的显示屏接口是7针的,
彩屏的第8脚是BL背光控制,只要用杜邦线将它连接到Vcc即可。其它针脚全部对上的。
科学妞妞
发表于 2024-6-1 20:26:12
浦江一水 发表于 2024-6-1 19:53
“基于屠龙刀板子 + 屏是1.8128*160RGB-TFTic:ST7735”
手头正好也有这样的硬件配置。就匆匆编写 ...
谢谢先行者,对咱们爱好者的支持
llyymm
发表于 2024-6-15 12:24:11
点赞学习中
laiyw
发表于 2024-6-15 18:37:45
学习了
大哲老师
发表于 2024-6-16 12:00:43
下次搞个玩玩
18纯情男高中生
发表于 2024-6-18 15:02:23
打开了新思路,学习了
浦江一水
发表于 2024-6-23 21:35:53
wnagming 发表于 2024-6-23 16:13
内存缓存方式,一页就是128X64=8192/8=1024
即1K,那么使用双页缓存,就是2K
是的,是这么个理。只要RAM充裕,再多分几个页也可以。
当切换刷新显示某页时,实际上就是将某个页缓存数据写到屏里去。
单色屏,像素少,缓存小,容易实现和出效果。