当同时使用MCP3008 (MCP3008 spi)和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);
}任何帮助都将不胜感激。
发布于 2015-11-03 09:12:32
抱歉伙计们,是短路导致了故障。现在我可以向你保证,两个图书馆都在一起工作,而不是相互交叉。
问题的细节: MCP3008的CS腿正在做空到VDD线。在这种状态下,在pinMode(_CSPIN,OUTPUT);MCP3008构造函数中的语句之后,LiquidTWI2上的Wire.endTransmission()将挂起。
https://stackoverflow.com/questions/33483195
复制相似问题