skyfree 发表于 2014-3-22 15:12:29

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

淘宝了一块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 areSCK = 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

skyfree 发表于 2014-3-22 15:29:48

对应Nano上,arduino SPI接口定义:
D9   D10      D11   D12       D13
-      SS      MOSI    MISO   SCK
问,SSD1306与U8g 怎么和arduino板子连接?库怎么配置?
谢谢先。

hi55234 发表于 2014-3-22 16:33:24

U8g库中 A0=D/C

PS:如果不是用到硬件SPI,建议不用U8g库,这个库太大了~~

skyfree 发表于 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不行,随手写了个,也不行。

qptimus 发表于 2014-3-22 22:25:16

scl和sda是iic的脚,scl接iic时钟,sda接数据,rst应该是reset,d/c用来区分数据(data)和控制符(control),不是spi,你用错库了

mmfinger 发表于 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 static/image/common/back.gif
是呀,编译就觉得太慢。
如果oLED屏的cs被屏蔽了,U8g 里CS那块怎么写?
U8GLIB_SSD1306_128X64 u8g(13,...

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

lovezypj 发表于 2016-1-30 19:41:01

7楼说的对,有些spi接口的oled需要硬件复位的,否则点不亮,找到oled的res针脚,就是复位,对应u8g第五个参数,默认该参数省略
页: [1]
查看完整版本: oLED SPI的不同库怎么定义接线?