ESP32C3_IIC的基本使用


前言

参考文档为

https://docs.espressif.com/projects/esp-idf/zh_CN/v4.3.1/esp32c3/api-reference/peripherals/gpio.html

一、IIC

I2C 是一种串行同步半双工式通信协议,总线上可以同时挂载多个主机和从机。I2C 总线由串行数据线 (SDA) 线和串行时钟线 (SCL) 线构成。这些线都需要上拉电阻。

I2C 具有简单且制造成本低廉等优点,主要用于低速外围设备的短距离通信(一英尺以内)。

ESP32-C3 有两个 I2C 控制器(也称为端口),负责处理在 I2C 两根总线上的通信。每个控制器都可以设置为主机或从机。例如,可以同时让一个控制器用作主机,另一个用作从机。

二、使用步骤

1.使用驱动程序

以下部分将指导您完成 I2C 驱动程序配置和工作的基本步骤:

  1. 配置驱动程序 - 设置初始化参数(如主机模式或从机模式,SDA 和 SCL 使用的 GPIO 管脚,时钟速度等)
  2. 安装驱动程序- 激活一个 I2C 控制器的驱动,该控制器可为主机也可为从机
  3. 根据是为主机还是从机配置驱动程序,选择合适的项目
    主机模式下通信 - 发起通信(主机模式)
    从机模式下通信 - 响应主机消息(从机模式)
  4. 中断处理 - 配置和 I2C 中断服务
  5. 用户自定义配置 - 调整默认的 I2C 通信参数(如时序、位序等)
  6. 错误处理 - 如何识别和处理驱动程序配置和通信错误
  7. 删除驱动程序- 在通信结束时释放 I2C 驱动程序所使用的资源

1.1 配置驱动程序

建立 I2C 通信第一步是配置驱动程序,这需要设置 i2c_config_t 结构中的几个参数:

  1. 设置 I2C 工作模式 - 从 i2c_mode_t 中选择主机模式或从机模式

  2. 设置 通信管脚
    指定 SDA 和 SCL 信号使用的 GPIO 管脚
    是否启用 ESP32-C3 的内部上拉电阻

  3. (仅限主机模式)设置 I2C 时钟速度

  4. (仅限从机模式)设置以下内容:

    是否应启用 10 位寻址模式

    定义 从机地址

然后,初始化给定 I2C 端口的配置,请使用端口号和 i2c_config_t 作为函数调用参数来调用 i2c_param_config() 函数。
在此阶段,i2c_param_config() 还将其他 I2C 配置参数设置为 I2C 总线协议规范中定义的默认值。有关默认值及修改默认值的详细信息,请参考 用户自定义配置。

在这里插入图片描述

    esp_err_t err = i2c_param_config(i2c_master_port, &conf);//配置IIC参数

1.2 安装驱动程序

配置好 I2C 驱动程序后,使用以下参数调用函数 i2c_driver_install() 安装驱动程序:

  1. 端口号,从 i2c_port_t 中二选一

  2. 主机或从机模式,从 i2c_mode_t 中选择

  3. (仅限从机模式)分配用于在从机模式下发送和接收数据的缓存区大小。I2C是一个以主机为中心的总线,数据只能根据主机的请求从从机传输到主机。因此,从机通常有一个发送缓存区,供从应用程序写入数据使用。数据保留在发送缓存区中,由主机自行读取。

  4. 用于分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值