wGaoSpace 发表于 2017-5-20 22:50:47

arduino nano328使用SD卡(SPI通信方式)和SSD1306(IIC通信方式)出现问题

arduino nano328使用SD卡(SPI通信方式)和SSD1306(IIC通信方式)出现问题单独使用SD卡或者SSD1306可以正常工作,SD使用的是arduino自带函数,SSD1306使用标准驱动函数,同时使用时,编译没有报错,但是串口没有输出提示信息,板子没有输出显示信息。一下为源码部分。希望可以得到解答
#include <Wire.h>//IIC OLED
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


#include <SPI.h>
//#include <SD.h>


#define OLED_RESET 5
Adafruit_SSD1306 show(OLED_RESET);


// CS引脚为pin4,这里也沿用官方默认设置
const int chipSelect = 4;//设定CS接口




void setup()
{   
   Serial.begin(9600);//设置串口通信波特率为9600
   
   Serial.print("Initializing SSD1306...");//串口输出数据Initializing SD card...
   show.begin(SSD1306_SWITCHCAPVCC, 0x3C);
   Serial.print("Initialized SSD1306...");//串口输出数据Initializing SD card...


   Serial.print("Initializing SD...");//串口输出数据Initializing SD card...
//   if (!SD.begin(chipSelect)) {//如果从CS口与SD卡通信失败,串口输出信息Card failed, or not present
//      Serial.println("Card failed, or not present");
//      return;
//    }
Serial.println("card initialized.");//与SD卡通信成功,串口输出信息card initialized.Z

}
void loop()
{
show.clearDisplay();
    vio();
}
void vio()
{   
    show.setTextSize(2);
    show.setTextColor(WHITE);
    show.setCursor(0,50);
    show.print("result:1");
    show.display();
    delay(1000);
}

弘毅 发表于 2017-5-21 08:05:34

检查一些这些库里,是不是使用了delay,如果是的话,把这些delay尝试的改到自己代码里手工控制。delay会打断时序

wGaoSpace 发表于 2017-5-21 11:55:02

弘毅 发表于 2017-5-21 08:05
检查一些这些库里,是不是使用了delay,如果是的话,把这些delay尝试的改到自己代码里手工控制。delay会打 ...

我将SSD1306和SD使用的delay函数关掉了,单独测试正常,合在一起,还是和没用delay是一样的实验现象。出口无提示信息,板子没有反应
页: [1]
查看完整版本: arduino nano328使用SD卡(SPI通信方式)和SSD1306(IIC通信方式)出现问题