
-
UID:1193491
-
- 注册时间2012-07-04
- 最后登录2025-07-19
- 在线时间1568小时
-
-
访问TA的空间加好友用道具
- 发帖
- 1325
- M币
- 4067
- 专家
- 17
- 粉丝
- 19311
|
—
本帖被 發騷友 执行加亮操作(2018-02-12)
—
事情的起因是这样的,一天我百无聊赖地浏览着论坛的帖子,突然看到了这么一个帖子: STC15硬件SPI驱动96*96 OLED屏 1.12寸的OLED屏,跟常用的0.96寸的12864差不多价格,还比它大一些,而且是少见的绿色,立马顺着链接摸到店铺,发现不少平价OLED屏,一时没忍住就剁手了几块不同的屏…… 两天后快递包裹就来了,卖家很良心地给了STM32的例程和对应屏幕芯片的驱动IC的DataSheet,可是鄙人不才,玩不转STM32啊,只会在C51里if来if去,或者搬运网上的代码……花了几天研究卖家给的代码、帖子里的代码、数据手册以及之前驱动各种液晶屏的经验,终于得到了以下成果:
首先是绿色的96×96的OLED,支持16级灰度: 先刷一张图
这里从上到下分别是 1、8×16的精简ASCII字符显示 2、16×16中文字符显示 3、int变量直接显示,支持前面的零不显,也就是100不会显示成00100,做电压显示之类需要一直动态刷新的数字显示很方便 4、任意位置显示4位灰度图像 **想必大家注意到了,这里的65432怎么这么暗,因为这里所有的显示函数都支持设定16级的亮度等级,毕竟这是灰度屏这功能可不能浪费了
至于图像是怎么显示的,我是先用PhotoShop把图片处理成96×96的4位bmp格式图片,再用MATLAB写了个脚本
最后把数据导出到excel里:
然后复制粘贴到数组里面就行啦,因为是灰度图,一个像素要占用4个bit,所以数组非常庞大(要4.5KB)
关于汉字的取模,设置如下图,取模软件就是喜闻乐见的“PCtoLCD2002”啦。
然后是一块128×96的OLED,和上面的屏数据格式是一样的,仅有的区别就是分辨率不同和初始化命令不同: 图片
文字
对了,这里英文显示我特意写了个自动换行功能,同样一条命令
效果如下
零零散散讲了一大堆,关键的源代码我也会放出来哟,两个屏的驱动全都使用了STC8A8K64S4A12的硬件SPI,使用STC15的话,SPI初始化函数需要小改一下。 程序方面有比较详细的说明,两个头文件共用codetab和chinesetab两个字模文件。
接下来放个下期预告 下次折腾这个RGB565的彩色OLED屏,我已经驱动成功了
|