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

Arduino MCP3008 library (spi) + LiquidTWI2 Library (i2c) hanging

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

我知道它在第一次实例化 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);
     }

如有任何帮助,我们将不胜感激。

抱歉,是腿短路导致了故障情况。 我现在可以向您保证,这两个库正在协同工作,不会相互干扰。

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