极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18359|回复: 2

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

[复制链接]
发表于 2017-5-20 22:50:47 | 显示全部楼层 |阅读模式
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会打断时序
回复 支持 反对

使用道具 举报

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

我将SSD1306和SD使用的delay函数关掉了,单独测试正常,合在一起,还是和没用delay是一样的实验现象。出口无提示信息,板子没有反应
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 04:38 , Processed in 0.040192 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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