极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16816|回复: 13

请教oled的SPI使用问题

[复制链接]
发表于 2015-7-25 21:40:36 | 显示全部楼层 |阅读模式
oled无论怎么弄都无法亮,不知道是什么问题。我的程序是这样写的:
  1. #include "U8glib.h"

  2. U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

  3. const uint8_t rook_bitmap[] PROGMEM = {
  4.   0x00,         // 00000000
  5.   0x55,         // 01010101
  6.   0x7f,          // 01111111
  7.   0x3e,         // 00111110
  8.   0x3e,         // 00111110
  9.   0x3e,         // 00111110
  10.   0x3e,         // 00111110
  11.   0x7f           // 01111111
  12. };

  13. void draw(void) {
  14.   // graphic commands to redraw the complete screen should be placed here  
  15.   u8g.drawBitmapP( 0, 0, 1, 8, rook_bitmap);
  16. }

  17. void setup(void) {
  18.   pinMode(6, OUTPUT);
  19.   digitalWrite(6, HIGH);
  20. }

  21. void loop(void) {
  22.   // picture loop
  23.   u8g.firstPage();  
  24.   do {
  25.     draw();
  26.   } while( u8g.nextPage() );
  27.   
  28.   // rebuild the picture after some delay
  29.   delay(1000);
  30. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-7-25 21:45:37 | 显示全部楼层
线是这样连的:
arduino  <--------> oled
GND                    GND
5V                      VCC
pin13                   SCL
pin11                   SDA
pin9                    D/C
pin6                    RST
回复 支持 反对

使用道具 举报

发表于 2015-7-25 21:48:44 | 显示全部楼层
接线可能有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-25 21:51:34 | 显示全部楼层
asdfcgdc 发表于 2015-7-25 21:48
接线可能有问题

线换过几条,还是没有亮
回复 支持 反对

使用道具 举报

发表于 2015-7-25 22:21:39 | 显示全部楼层
SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 按这个接
回复 支持 反对

使用道具 举报

发表于 2015-7-26 03:24:12 | 显示全部楼层
如果不是打错了,那就是明显的线接错了:
定义的时候是这样的:
  1. U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
复制代码
你自己发的接线图又是这样的:
arduino  <--------> oled
GND                    GND
5V                      VCC
pin13                   SCL
pin11                   SDA
pin9                    D/C
pin6                    RST
回复 支持 反对

使用道具 举报

发表于 2015-7-26 06:18:02 | 显示全部楼层
beian10 发表于 2015-7-25 21:51
线换过几条,还是没有亮

不是线有问题,是接错了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-26 11:41:28 | 显示全部楼层
liuxue4503 发表于 2015-7-26 03:24
如果不是打错了,那就是明显的线接错了:
定义的时候是这样的:你自己发的接线图又是这样的:
arduino    ...

我在淘宝买的是基于SPI的oled,不过上面没有SCK,MOSI,CS的引脚。只是GND,VCC,SCL,SDA,RST,D/C。我都不知怎么接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-26 11:45:42 | 显示全部楼层
加冰的可乐 发表于 2015-7-25 22:21
SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 按这个接

在oled上没有SCK,MOSI这两个引脚。写着有SCL,SDA。没办法照着接。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-26 11:51:47 | 显示全部楼层
asdfcgdc 发表于 2015-7-26 06:18
不是线有问题,是接错了

嗯,oled上面引脚没有SCK,MOSI,只有SCL,SDA。不过买的是SPI的
回复 支持 反对

使用道具 举报

发表于 2015-7-27 03:13:04 | 显示全部楼层
本帖最后由 老来疯 于 2015-7-27 03:27 编辑
beian10 发表于 2015-7-26 11:51
嗯,oled上面引脚没有SCK,MOSI,只有SCL,SDA。不过买的是SPI的


    SPI 是由摩托罗拉定义的一种同步外设接口总线,标准的为 4 线,即两条控制线(芯片选择CS和时钟SCLK),以及两条数据信号线(SDI 和 SDO),其中 SDI 又称为 MOSI (主出从入)和 MISO(主入从出),由于 OLED 屏本身又是一个微控制器,当然他在启动时也需要复位(Reset 或称 RSE),所以完整的 SPI 接口是 5 条线,还需要两条电源线。

    由于 OLED 屏在串行通信时不能回传显存(GGRAM)的数据,所以不用 MISO。 又由于当 SPI 只与一个设备通信时不需要 片选 (CS)信号线,这样就省去了两条线。

    需要的接口线是:   
      1.   SCLK    又称   SCL(IIC 通信时的 名称),  又称 SCK     在支持两种通信模式的板上又称为  D0 ,
      2.  MOSI    又称   SDA(IIC 通信时的 名称),  在支持两种通信模式的板上又称为  D1 ,
      3.   DC      又称  D/C  又称  A0 ,  数据/命令端口,

         CS       又称   SS, 片选信号线,你的屏没有这根线,屏内以接地,表示自己已被选中,但是Arduino 的 对应端口不能别用,因为这个端口被设为输出,表示自己是主设备!(SPI 是可以让两个设备互为主设备的)。
        由于 SPI 是可以 一对多 工作的,所以主设备要对每一个从设备都有一个 CS 端口,当只有一个从设备时,不用接线也是可以工作的。

       电源和地 一般不会接错,但是它们也有不同叫法。
      厂家太多,接口方式太多,又都想特立独行,还不给明确的使用方法,我也是查了很多资料才搞明白,希望对您有帮助。
         
回复 支持 反对

使用道具 举报

发表于 2015-7-27 07:48:39 | 显示全部楼层
beian10 发表于 2015-7-26 11:51
嗯,oled上面引脚没有SCK,MOSI,只有SCL,SDA。不过买的是SPI的

  所以要看准买,买的不好多麻烦!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-28 10:17:14 | 显示全部楼层
老来疯 发表于 2015-7-27 03:13
SPI 是由摩托罗拉定义的一种同步外设接口总线,标准的为 4 线,即两条控制线(芯片选择CS和时钟SCL ...

说得很详细,太感谢了,我回去再试一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-28 10:32:17 | 显示全部楼层
好了,总算成功 在这多谢大家
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:43 , Processed in 0.038348 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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