2015-11-02 105 views
1

我的Arduino UNO使用MCP3008(MCP3008 SPI)和LiquidTWI2(MCP23017 I2C)时,同时挂。 我可以单独测试这两个库,它们工作正常,但不在一起。Arduino的MCP3008库(SPI)+ LiquidTWI2库(I2C)挂

我知道MCP3008下一行第一次实例化后使用LiquidTWI2会冻结Wire.endTransmission();

这是我的例子循环功能 的最后一行之后挂起(实际上它挂在第二次迭代lcd.setCursor)

#include <Wire.h> 
    #include <LiquidTWI2.h> 
    #include <MCP3008.h> 
    const int _CS_PIN2 =9; 
    const int _CS_PIN =10; 
    const int _CLOCK_PIN= 13; 
    const int _MOSI_PIN= 11; 
    const int _MISO_PIN= 12; 


    LiquidTWI2 lcd(0x20); 

    void setup() { 
     lcd.setMCPType(LTI_TYPE_MCP23017); 
     lcd.begin(16, 2); 
     lcd.print("hello, world!"); 
    } 

    void loop() { 
     lcd.setCursor(0, 1); //freeze on second iteration 
     lcd.print(millis()/1000); 
     MCP3008 adc2(_CLOCK_PIN, _MOSI_PIN, _MISO_PIN, _CS_PIN2); 
    } 

任何帮助,将不胜感激。

回答

0

对不起人们,这是腿短路造成的错误情况。 我现在可以向你保证,这两个图书馆正在一起工作,而不是彼此交互。

问题的详细信息: MCP3008的CS支路短路至VDD线。 在此状态下,pinMode(_CSPIN,OUTPUT);语句在MCP3008构造函数中,LiquidTWI2上的Wire.endTransmission()将挂起。