极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24119|回复: 7

oLED SPI的不同库怎么定义接线?

[复制链接]
发表于 2014-3-22 15:12:29 | 显示全部楼层 |阅读模式
淘宝了一块SPI接口的oLED(128*64),除电源VCC/GND外有4个接口,分别是:

SCL    SDA    RST   D/C     (另有CS 被屏蔽掉)

现在要和Arduino nano 连接,
使用SSD1306库,库给出的配置方式:

#define OLED_DC 11  //OLED -- D/C
#define OLED_CS 12  //Not connect
#define OLED_CLK 10 //OLED -- SCL
#define OLED_MOSI 9 //OLED -- SDA
#define OLED_RESET 13//OLED -- RST
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
要使用U8g库,库给出的配置方式:
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//U8GLIB_SSD1306_128X64 u8g(10, 9);                // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are  SCK = 13 and MOSI = 11)

使用SSD1306,我会接线,能一一对应起来,但是U8g库,和我硬件接线标示不一致,没有A0,我oLED上的RST也没有对应,该怎么连接?


oLED屏接线柱    SCL                   SDA                      RST                 D/C           (CS 被屏蔽)
SSD1306库     OLED_CLK   OLED_MOSI      OLED_RESET     OLED_DC          -1
U8g库           SCK                 MOSI                   ??         A0                -1
回复

使用道具 举报

 楼主| 发表于 2014-3-22 15:29:48 | 显示全部楼层
对应Nano上,arduino SPI接口定义:
D9   D10      D11     D12       D13
-      SS      MOSI    MISO     SCK
问,SSD1306与U8g 怎么和arduino板子连接?库怎么配置?
谢谢先。
回复 支持 反对

使用道具 举报

发表于 2014-3-22 16:33:24 | 显示全部楼层
U8g库中 A0=D/C

PS:如果不是用到硬件SPI,建议不用U8g库,这个库太大了~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-22 17:30:44 | 显示全部楼层
是呀,编译就觉得太慢。
如果oLED屏的cs被屏蔽了,U8g 里CS那块怎么写?
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
CS用-1不行,随手写了个,也不行。
回复 支持 反对

使用道具 举报

发表于 2014-3-22 22:25:16 | 显示全部楼层
scl和sda是iic的脚,scl接iic时钟,sda接数据,rst应该是reset,d/c用来区分数据(data)和控制符(control),不是spi,你用错库了
回复 支持 反对

使用道具 举报

发表于 2016-1-25 20:47:23 | 显示全部楼层
我也遇到这个问题,加上一个RST脚就可以正常了。


U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 2);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 2
回复 支持 反对

使用道具 举报

发表于 2016-1-30 00:06:15 | 显示全部楼层
skyfree 发表于 2014-3-22 17:30
是呀,编译就觉得太慢。
如果oLED屏的cs被屏蔽了,U8g 里CS那块怎么写?
U8GLIB_SSD1306_128X64 u8g(13,  ...


CS 是 主从选择,低电平有效,
当只有一个 SPI 设备时,从设备可以直接接地,但是主设备的那个端口不能接其他 外设。原因是 SPI 要求 CS 端口必须设置为 输出,以表示自己是 主机。
你的 U8G 驱动 不能正常显示的原因是:没有给出 复位(RESET)端口,有两个方法,一个是 在 setup() 设置里加上复位语句,更简单的方法是在  u8g(13, 11, 10, 9,x) 驱动里加上第五个 参数,指明 引脚号,如 6 楼所言。
回复 支持 反对

使用道具 举报

发表于 2016-1-30 19:41:01 | 显示全部楼层
7楼说的对,有些spi接口的oled需要硬件复位的,否则点不亮,找到oled的res针脚,就是复位,对应u8g第五个参数,默认该参数省略
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 15:24 , Processed in 0.036993 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表