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() 将挂起。
我在同时使用 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() 将挂起。