当同时使用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);
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
问题详情: MCP3008的CS脚短路至VDD线。 在这种状态下,在pinMode(_CSPIN,OUTPUT)之后;在MCP3008构造函数中,LiquidTWI2上的Wire.endTransmission()将挂起。