Ameba MicroPython: [RTL8722CSM] [RTL8722DM] I2C - 发送与接收

材料准备

  • Ameba 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

1

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

from machine import Pin, I2C
i2c = I2C(scl = "PA_25", sda = "PA_26", freq=100000) # configure I2C with pins and freq. of 100KHz
i2c.scan()
i2c.writeto(8, 123) # send 1 byte to slave with address 8
i2c.readfrom(8, 6) # receive 6 bytes from slave
请先确认已安装QQ通讯软体