美文网首页
Adafruit_SSD1306使用自定义i2c引脚

Adafruit_SSD1306使用自定义i2c引脚

作者: 沐泠LHY | 来源:发表于2020-08-09 18:14 被阅读0次

初学arduino时需要驱动0.96的oled屏幕,U8g2库虽然很全,但是sendBuffer时耗时较久,影响loop内的代码
遂准备使用Adafruit_SSD1306试一试,但是网上的关于四脚i2c接口oled屏幕的教程都是千篇一律从官方示例拿来的代码,只有使用硬件i2c引脚的示例,查询源码后发现使用任意gpio引脚驱动的方法,记录如下:

对象创建和官方一样

#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET  -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(/*SCREEN_WIDTH*/128, /*SCREEN_HEIGHT*/64, &Wire, OLED_RESET);

setup函数中

void setup() {
  Wire.begin(/*SDA*/12,/*SCL*/14);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c,false,false)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
}

关键是增加了Wire.begin(SDA,SCL)这一句来使用软件i2c引脚
display.begin中
第一个参数不知道什么意思,但不影响使用
第二个参数表示i2c地址,看很多地方都写0x3c也就这么写了,具体为啥我也不懂
第三个参数表示是否reset
第四个参数periphBegin比较关键,要为false,否则函数内部将再次调用Wire.begin();

if (periphBegin)
      wire->begin();

但是为true也可以显示,不过为了保险起见,还是写false

相关文章

  • Adafruit_SSD1306使用自定义i2c引脚

    初学arduino时需要驱动0.96的oled屏幕,U8g2库虽然很全,但是sendBuffer时耗时较久,影响l...

  • ESP8266(nodemcu)引脚和I2C的坑!!!

    引脚 esp82666在网上买的基本都是nodemcu的这个板子 z这个板子上面有丝印引脚编号 I2C esp82...

  • 11.20

    今天讲了spi eeprom i2c下午助教老师讲了讲解了一下mcp23008芯片得各个引脚功能 I2C开始...

  • 基于高通平台的TP调试

    1、硬件原理 TP 相关的引脚有 SCL、SDA、VREG_L10、INT、RST,SCL、SDA用于I2C通讯,...

  • 2017年11月20日

    今天老师讲的还是I2C、SPI、EEPORM,下午助教老师讲了讲解了一下MCP23008芯片得各个引脚功能,输入教...

  • I2C协议笔记

    I2C总线协议是一种芯片间信息交换的低速串行协议,广泛用于各种对速度要求不高,同时希望引脚较少的AD/DA、...

  • 04 门电路使用技巧

    多余输入引脚的处理 与、与非门多余输入引脚 接 “1” 或、或非门多余输入引脚 接 “0” 门电路使用禁忌 输出端...

  • 2017年11月20日学习总结

    今天上午老师讲的还是I2C、SPI、EEPORM,下午助教老师讲了讲解了一下MCP23008芯片得各个引脚功能I2...

  • LUAT实践 - I2C通讯之定位我们的外设设备

    本实践目标 了解I2C的基本概念以及应用方式 熟悉air20x的I2C API 在使用具体的I2C器件之前,我们首...

  • AVR硬件SPI

    1、使用硬件SPI时,不自动控制SS引脚:配置为 SPI 主机时, SPI 接口不自动控制 SS 引脚,必须由用户...

网友评论

      本文标题:Adafruit_SSD1306使用自定义i2c引脚

      本文链接:https://www.haomeiwen.com/subject/rtfrdktx.html