我不明白我将如何编写我的 MCU 以在 I2C 总线上监听它的地址并相应地执行。C 中的许多示例代码都是针对主设备的。我想更好地了解如何为从设备编写代码。我是否使用 SMB0STA 状态寄存器?我在下面发布了一个函数,我认为它会“监听”提示以启动和输出数据。0xA8
是“收到自己的地址 + R。ACK 已发送”的状态代码。根据我的 C8051F020 MCU 数据表。
unsigned char i2c_Slave_Read (void)
{
unsigned char data_out[8];
data_out[8] = "LED 1 ON";
while (SI)
if (SMB0STA == 0xA8)
{
P5 = 0x10;
SMB0DAT = data_out;
}
}