Arduino MCP3008库(spi)+ LiquidTWI2库(i2c)挂起

时间:2015-11-02 17:14:16

标签: arduino i2c spi

当同时使用MCP3008(MCP3008 spi)和LiquidTWI2(mcp23017 i2c)时,我有arduino uno挂起。 我可以单独测试两个库,它们工作正常,但不能一起使用。

我知道在使用LiquidTWI2第一次实例化MCP3008下一行后它会冻结在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);
     }

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

对不起朋友,这是短路引起的错误情况。 我现在可以向你们保证,两个图书馆都在一起工作,而不是互相干扰。

问题详情: MCP3008的CS脚短路至VDD线。 在这种状态下,在pinMode(_CSPIN,OUTPUT)之后;在MCP3008构造函数中,LiquidTWI2上的Wire.endTransmission()将挂起。