[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 |
请一行接一行地复制粘贴以下代码到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
