浦江一水 发表于 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充裕,再多分几个页也可以。
当切换刷新显示某页时,实际上就是将某个页缓存数据写到屏里去。
单色屏,像素少,缓存小,容易实现和出效果。
页: 1 2 3 [4] 5 6
查看完整版本: 32G12K128驱动OLED12864,用普通IO模拟SPI或硬件SPI接口方式+双页显示