esp-idf/examples/peripherals/i2c/i2c_simple
Darian Leung 57fd78f5ba freertos: Remove legacy data types
This commit removes the usage of all legacy FreeRTOS data types that
are exposed via configENABLE_BACKWARD_COMPATIBILITY. Legacy types can
still be used by enabling CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY.
2022-02-09 23:05:45 +08:00
..
main freertos: Remove legacy data types 2022-02-09 23:05:45 +08:00
CMakeLists.txt i2c: add a simple i2c sensor communication example 2021-07-13 16:31:38 +08:00
README.md refactor (cxx): C++ I2C example now uses MPU9250 instead of MCP9808 2021-11-18 19:07:44 +08:00

I2C Simple Example

(See the README.md file in the upper level 'examples' directory for more information about examples.)

Overview

This example demonstrates basic usage of I2C driver by reading and writing from a I2C connected sensor:

If you have a new I2C application to go (for example, read the temperature data from external sensor with I2C interface), try this as a basic template, then add your own code.

How to use example

Hardware Required

To run this example, you should have one ESP32, ESP32-S or ESP32-C based development board as well as a MPU9250. MPU9250 is a inertial measurement unit, which contains a accelerometer, gyroscope as well as a magnetometer, for more information about it, you can read the datasheet of the MPU9250 sensor.

Pin Assignment:

Note: The following pin assignments are used by default, you can change these in the menuconfig .

SDA SCL
ESP I2C Master I2C_MASTER_SDA I2C_MASTER_SCL
MPU9250 Sensor SDA SCL

For the actual default value of I2C_MASTER_SDA and I2C_MASTER_SCL see Example Configuration in menuconfig.

Note: There's no need to add an external pull-up resistors for SDA/SCL pin, because the driver will enable the internal pull-up resistors.

Build and Flash

Enter idf.py -p PORT flash monitor to build, flash and monitor the project.

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Example Output

I (328) i2c-simple-example: I2C initialized successfully
I (338) i2c-simple-example: WHO_AM_I = 71
I (338) i2c-simple-example: I2C de-initialized successfully

Troubleshooting

(For any technical queries, please open an issue on GitHub. We will get back to you as soon as possible.)