我们现在有3天这个问题,我们有3个arduino文件:
main.ino
module1.ino //module 1 is using software serial on pins 5,6
module2.ino //2 is using Wire library
每个模块都由它自己工作,但当我们尝试与它们一起工作时,#34;从主文件中我们得到无休止的重置:
主要
setup(); // 0 ( Wire connection setup)
clearAcInt(); //1 ( Wire connection)
connect(USER_SSID,USER_PASS); //2 ( software serial)
因此,仅使用0 + 1效果很好,也只使用2个作品,但在0 + 1之后使用2会导致重置(设置功能已提交)
// 0+ 1线连接模块
#include <Wire.h>
#define DEVICE (0x53) //ADXL345 device address
#define TO_READ (6)
byte buff[TO_READ] ;
byte buffReg[8];
char str[512];
void setup()
{
Wire.begin();
}
char *clearAcInt()
{
//**the cause of the problem:
readFrom(DEVICE, 0x30, 8, buff); //0x30
return "non";
}
void readFrom(int device, byte address, int num, byte buff[])
{
Wire.beginTransmission(device); //start transmission to device
Wire.write(address); //sends address to read from
Wire.endTransmission(); //end transmission
//Wire.beginTransmission(device); //start transmission to device (initiate again)
Wire.requestFrom(device, num); // request 6 bytes from device
int i = 0;
while(Wire.available()) //device may send less than requested (abnormal)
{
buff[i] = Wire.read(); // receive a byte
i++;
}
// Wire.endTransmission(); //end transmission
}
// 2软件序列
#include <SoftwareSerial.h>
SoftwareSerial softSerial(5,6);
void setupCon()
{
softSerial.begin(9600);
}
boolean connect(USER_SSID,USER_PASS)
{
softSerial.println( ".sta.config(\"");
softSerial.println( ssid);
softSerial.println( "\"");
softSerial.println( ",");
softSerial.println( "\"");
softSerial.println(pass);
softSerial.println("\")");
}
删除1可以解决问题,同时删除2会解决问题。 因此,看起来Wire模块上的读取功能会导致以后您无法再连接软件序列。
我们真的输了,所以任何方向都会很棒。 谢谢。