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
对应Nano上,arduino SPI接口定义:
D9 D10 D11 D12 D13
- SS MOSI MISO SCK
问,SSD1306与U8g 怎么和arduino板子连接?库怎么配置?
谢谢先。 U8g库中 A0=D/C
PS:如果不是用到硬件SPI,建议不用U8g库,这个库太大了~~ 是呀,编译就觉得太慢。
如果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不行,随手写了个,也不行。 scl和sda是iic的脚,scl接iic时钟,sda接数据,rst应该是reset,d/c用来区分数据(data)和控制符(control),不是spi,你用错库了 我也遇到这个问题,加上一个RST脚就可以正常了。
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 2); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 2
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 楼所言。 7楼说的对,有些spi接口的oled需要硬件复位的,否则点不亮,找到oled的res针脚,就是复位,对应u8g第五个参数,默认该参数省略
页:
[1]