浦江一水 发表于 2024-11-18 17:56:27

江上酒酒 发表于 2024-11-18 15:42
SS1306.H 和 SS1306.C是找商家要吗,商家给我的我没发现有这。但我发现了这些 ...

前文说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显示屏引脚定义是:
#defineSCL P25
#defineSDA P24
这是符合电原理图的.
但是注意没? 出厂的实验箱默认连接4针SDA引脚的一个R175电阻没有焊. (估计你是不会加焊的)
所以实验箱的这个SDA引脚实际上是没有接通.
这个不是官方设计的错误, 这是有说明的.
默认是接SPI的7针的OLED显示屏的. 已焊上了R174电阻,
所以SDA是接在P23的.
怎么办? 难道官方的这个例程无法执行了吗?
不是的.
有两个办法解决.
一是, 焊下R173(就是断开), 挪到 R175位置焊上(就是短路), 原程序不动, 就可以了.
但是这种方法, 估计没有人干. 以后做7针SPI接口的显示屏实验时再焊回来?我就不干.
另外一种方法是, 硬件不动, 改动软件,
将原#defineSDA P24   宏定义
改为#defineSDA P23   
只要你不是同时做其它有关P23的实验, 重新编译就可以了.

所以, 建议你先实验一下这例程.点亮它, 以后再分析它, 熟悉OLED的编程. 再按自己的想象编程使用它.

4针的OLED显示屏, 可能算是目前IO接口最少的显示屏了,
别看它这么小, 其实它包含了丰富的知识点.
特别是IIC通讯方面, 充分了解它, 使用它.
估计在学习的道路上还有一段路要走.
祝顺利.

江上酒酒 发表于 2024-11-18 18:04:05

浦江一水 发表于 2024-11-18 17:56
前文说SS1306.H和SS1306.C文件, 这只是一个比如...
具体文件名称各有不同,不是固定的。
上面10#楼截图中 ...

感谢回复的这么详细,感谢 感谢感谢{:cry:}

江上酒酒 发表于 2024-11-18 18:18:23

本帖最后由 江上酒酒 于 2024-11-18 18:37 编辑

浦江一水 发表于 2024-11-18 17:56
前文说SS1306.H和SS1306.C文件, 这只是一个比如...
具体文件名称各有不同,不是固定的。
上面10#楼截图中 ...
对了,打开官网上的程序,点编译,编译不了,您知道这是为什么吗,但是自己写个程序可以正常编译
Build target 'Target 1'
compiling main.c...
C251 FATAL-ERROR -
ACTION:OPENING INPUT-FILE
FILE:    \Users\hongd\Desktop\STC32G嵌疧LED(SPI IIC)\STC32G_IIC_OLED12864\ware\iic.h
ERROR:   FILE DOES NOT EXIST
C251 TERMINATED.
Target not created.
Build Time Elapsed:00:00:00
这是编译日志

江上酒酒 发表于 2024-11-18 18:43:35

这是那个我编译不了的文件

浦江一水 发表于 2024-11-18 20:06:23

江上酒酒 发表于 2024-11-18 18:43
这是那个我编译不了的文件

下载了你说的编译不了文件包zip, 在我的计算机里, 重新编译了一下, 是完全可以编译通过的.
(虽然有30个警告信息,因编译器版本不同,语法要求不同,但那是可以忽略的).

还是要分析一下,你那里编译不通过的原因了:

上面编译日志中显示的错误提示中:
FILE DOES NOT EXIST
就是文件不存在.
再从上面的路径提示看,
你是将"STC32G_IIC_OLED12864"目录直接拖到桌面上来编译的.
这里可能存在着编译器不认识的路径问题.
搞单片机的人一般都知道不这样做.
尽量放在不是系统所在盘的根目录,
目录结构尽量简化,不要搞一层又一层...
目录名称中尽量不要带中文字符...
你可将"STC32G_IIC_OLED12864"目录,整个复制粘贴到D盘的根目录
也就是 D:\STC32G_IIC_OLED12864
再试试看....

另外, 还不知道你的0.96寸4针OELD屏, 驱动芯片是什么型号的?
如果是SSD1306这种的话, 那么我也正好有, 可以抽时间编一个小程序给你试试看.

江上酒酒 发表于 2024-11-18 20:25:01

浦江一水 发表于 2024-11-18 20:06
下载了你说的编译不了文件包zip, 在我的计算机里, 重新编译了一下, 是完全可以编译通过的.
(虽然有30个 ...

是的,也是SSD1306

浦江一水 发表于 2024-11-18 20:56:06

江上酒酒 发表于 2024-11-18 20:25
是的,也是SSD1306

试试看这个:



直接下载, 主频24Mhz, 跑一下, 看看如何情况.

江上酒酒 发表于 2024-11-18 21:16:06

本帖最后由 江上酒酒 于 2024-11-18 21:19 编辑

浦江一水 发表于 2024-11-18 20:56
试试看这个:



没有反应,线接的是对的,因为看您之前的一个帖子,使用电子DIY那位的程序,我也成功用那个程序点亮了屏

浦江一水 发表于 2024-11-18 21:40:37

江上酒酒 发表于 2024-11-18 21:16
没有反应,线接的是对的,因为看您之前的一个帖子,使用电子DIY那位的程序,我也成功用那个程序点亮了屏

...

看了照片才知道, 出乎想象了, 原来你是在跳线接屏, 没有在原来的OLED位置上.
那么,再做一下实验, 把那根咖啡色的线, 插在隔一格位置上试试看, 就是接TP_DI那引脚....


江上酒酒 发表于 2024-11-18 21:45:37

浦江一水 发表于 2024-11-18 21:40
看了照片才知道, 出乎想象了, 原来你是在跳线接屏, 没有在原来的OLED位置上.
那么,再做一下实验, 把那根 ...

可以了{:lol:}{:lol:}{:lol:}

页: 1 [2] 3
查看完整版本: OLED