- 打卡等级:以坛为家II
- 打卡总天数:538
- 最近打卡:2025-06-18 08:15:22
荣誉版主
- 积分
- 3807
|
发表于 2024-11-18 17:56:27
|
显示全部楼层
前文说SS1306.H和SS1306.C文件, 这只是一个比如...
具体文件名称各有不同,不是固定的。
上面10#楼截图中有四个文件:
第一个是图片文件,显示图片用的数组数据。不同的图片数组数据是不同的;
第二个文件就是关于显示屏的函数实现文件,相当于 SS1306.C;
第三个文件就是关于显示屏的头文件, 相当于 SS1306.H;
第四个文件是关于字库点阵的数组;
oled.c 和 oled.h
这样取名, 是能让人知道,这是一个有关oled屏的配套驱动文件,
但是不知道这屏是上面型号的, 现在市面上4针的0.96寸小屏至少有两种:SSD1315和SSD1306.
不知现在用的是哪一种?
给文件取名各有不同习惯,这不是最重要的。
另外这样的驱动文件不一定要从商家索要.其实到处都有啊.
用STC32G12K128实验箱, 官方例程包里就有啊.
建议先看看例程包中:
36-3-STC32G_OLED12864 其中 STC32G_IIC_OLED12864 那个例程.
仔细读一读, 了解它:
这个文件夹(就是目录)下有几个子文件夹? (体验关于工程文件的布局)
每些文件夹是干啥的?
这wave子文件夹中就有 oled.h 和 oled.c
这obj子文件夹是干啥的?
这其中的 stc_usb_ser.hex 文件就是最终要执行的代码文件了.
可以直接下载运行的. (不过猜想你十有八九是执行不了的, 为什么? 后面再说...)
这src子文件夹是干啥的?
这其中的main.c文件是干啥的?
打开main.c文件看看, 看它程序源代码是咋写的?
是不是 一上来就包含了:
#include "stc.h"
#include "oled.h"
#include "pic.h"
与1楼的截图相比较, 人家是不是加载了驱动头文件?
....
先看看这个例程... 多问问是什么? 为什么? 就会慢慢明白了...
看情况, 需要解说的问题是不少的... 慢慢来, 从基础一点点来....
先提醒一句, 其它以后再说...
上面说, 为什么现存的 stc_usb_ser.hex 是执行不来的...
因为, 在iic.h文件中, 对4针oled显示屏引脚定义是:
#define SCL P25
#define SDA P24
这是符合电原理图的.
但是注意没? 出厂的实验箱默认连接4针SDA引脚的一个R175电阻没有焊. (估计你是不会加焊的)
所以实验箱的这个SDA引脚实际上是没有接通.
这个不是官方设计的错误, 这是有说明的.
默认是接SPI的7针的OLED显示屏的. 已焊上了R174电阻,
所以SDA是接在P23的.
怎么办? 难道官方的这个例程无法执行了吗?
不是的.
有两个办法解决.
一是, 焊下R173(就是断开), 挪到 R175位置焊上(就是短路), 原程序不动, 就可以了.
但是这种方法, 估计没有人干. 以后做7针SPI接口的显示屏实验时再焊回来?我就不干.
另外一种方法是, 硬件不动, 改动软件,
将原 #define SDA P24 宏定义
改为 #define SDA P23
只要你不是同时做其它有关P23的实验, 重新编译就可以了.
所以, 建议你先实验一下这例程. 点亮它, 以后再分析它, 熟悉OLED的编程. 再按自己的想象编程使用它.
4针的OLED显示屏, 可能算是目前IO接口最少的显示屏了,
别看它这么小, 其实它包含了丰富的知识点.
特别是IIC通讯方面, 充分了解它, 使用它.
估计在学习的道路上还有一段路要走.
祝顺利.
|
|