我正在研究用于 I2C 通信的 attiny85。我已经浏览了不同的库,例如Wire.h
, TinyWire.h
, tinyWireM.h
, tinyWireS.h
.
一开始,我想通过 I2C 通信发送一些数据字节,并尝试用示波器对引脚进行范围,但它没有给我适当的结果。在互联网上寻找使 attiny85 与 I2c 一起工作的不同方法真的很无情,我无法完成任务。最后,我试着让 attiny85 做主人,把 arduino Uno 做奴隶,因为它在我的盒子里是备用的。
我试图将 attiny85 设为 master 并将数据发送到 arduino 并在串行监视器上查看输出,但它显示为零。
作为参考,附上主代码和从代码,我的任务很简单,检查串行。
Attiny85 作为 Master
#include <TinyWireM.h>
void setup()
{
TinyWireM.begin();
}
void loop()
{
TinyWireM.begin();
TinyWireM.beginTransmission(0x08);
TinyWireM.send(0x99);
int Byte1 = TinyWireM.endTransmission();
delay(1000);
}
Arduino作为奴隶
#include <Wire.h>
const byte add = 0x08;
int byte1;
void setup()
{
Wire.begin(add);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void loop()
{
Serial.println ("Data receiving");
Serial.println(byte1);
delay(1000);
}
void receiveEvent(int bytes)
{
byte1 = Wire.read();
}
但我无法在 arduino 的串行监视器上获得输出。我在这里做错了什么?