[RTL8722CSM] [RTL8722DM] I2C - 发送与接受

材料准备

  • AmebaD[AMB21 / AMB22] x 1

  • Arduino UNO x 1

范例说明

I2C是一个微控制器上非常常见的模块,它只需要两根线就可以实现最大3.4Mbps的传输速度它使用主从模式,一个主机可以同时连接最多128个从机,因此经常用在微控制器与感应器之间的数据传输。

这里我们使用ameba作为主机来连接从机Arduino UNO,来验证I2C的发送和接受。

在连接之前,请先将以下代码上传到Arduino UNO中,“Examples -> Wire -> Slave_receiver”

接下来,请按以下所示来连接,此处我们选择PA_26 作为 SDA引脚,PA_25 作为 SCL.

备注

注意: 目前仅支持一组I2C在MicroPython上使用,引脚如下

Unit

SDA

SCL

0

PA_26

PA_25

image1

请一行接一行地复制粘贴以下代码到REPL上,来观察代码效果。

1from machine import Pin, I2C
2i2c = I2C(scl = "PA_25", sda = "PA_26", freq=100000) # configure I2C with pins and freq. of 100KHz
3i2c.scan()
4i2c.writeto(8, 123) # send 1 byte to slave with address 8
5i2c.readfrom(8, 6) # receive 6 bytes from slave