[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