9c7cc86793
2. update example comments and other minor changes 3. rename API: i2c_cmd_link_create/i2c_cmd_link_delete (+4 squashed commits) Squashed commits: [2e0ac3e] 1. coding style: add one space after condition key words. 2. modify i2c.h, use gpio_num_t instead of int, improve comments of return values 3. add i2c index in index.rst 4. add readme for i2c example [4991d92] update i2c.doc [88b672e] driver: i2c 1. add mux and spin lock to run in a thread-safe way. 2. modify example code [4eb15fe] driver: i2c code 1. add i2c master code 2. add i2c slave code 3. add i2c example code 4. add DRAM_ATTR for I2C array
29 lines
1 KiB
Markdown
29 lines
1 KiB
Markdown
# I2C Example
|
|
|
|
|
|
* This example will show you how to use I2C module by running two tasks on i2c bus:
|
|
|
|
* read external i2c sensor, here we use a BH1750 light sensor(GY-30 module) for instance.
|
|
* Use one I2C port(master mode) to read or write the other I2C port(slave mode) on one ESP32 chip.
|
|
|
|
* Pin assignment:
|
|
|
|
* slave :
|
|
* GPIO25 is assigned as the data signal of i2c slave port
|
|
* GPIO26 is assigned as the clock signal of i2c slave port
|
|
* master:
|
|
* GPIO18 is assigned as the data signal of i2c master port
|
|
* GPIO19 is assigned as the clock signal of i2c master port
|
|
|
|
* Connection:
|
|
|
|
* connect GPIO18 with GPIO25
|
|
* connect GPIO19 with GPIO26
|
|
* connect sda/scl of sensor with GPIO18/GPIO19
|
|
* no need to add external pull-up resistors, driver will enable internal pull-up resistors.
|
|
|
|
* Test items:
|
|
|
|
* read the sensor data, if connected.
|
|
* i2c master(ESP32) will write data to i2c slave(ESP32).
|
|
* i2c master(ESP32) will read data from i2c slave(ESP32).
|