iic获取salve设备地址_基于esp32的IIC通讯

本文源码地址在:http://download.csdn.net/download/noticeable/9962029

IIC 通讯应该是当代比较常用的几种通讯方式之一,其无需特殊的IO接口,连线方式少,只有两条串行总线(SCL,SDA),用来完成数据传输。

本文重点测试相关的在esp32实现IIC通讯的完成,不涉及实际的传感器,在后面会有相应的传感器与esp32连接实现功能的文章,这里重点关注相关的IO配置及功能实现等,以此来学习相关API接口的配置方法。

本文源码可以分为以下几个部分:

PART1:

定义相关参数

1 #define DATA_LENGTH 512 /*!

2 #define RW_TEST_LENGTH 5 /*!

3

4 #define I2C_SLAVE_SCL_IO 26 /*!

5 #define I2C_SLAVE_SDA_IO 25 /*!

6 #define I2C_SLAVE_NUM I2C_NUM_0 /*!

7 #define I2C_SLAVE_TX_BUF_LEN (2*DATA_LENGTH) /*!

8 #define I2C_SLAVE_RX_BUF_LEN (2*DATA_LENGTH) /*!

9

10 #define I2C_MASTER_SCL_IO 19 /*!< gpio number for I2C master clock */

11 #define I2C_MASTER_SDA_IO 18 /*!< gpio number for I2C master data */

12 #define I2C_MASTER_NUM I2C_NUM_1 /*!< I2C port number for master dev */

13 #define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master do not need buffer */

14 #define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master do not need buffer */

15 #define I2C_MASTER_FREQ_HZ 100000 /*!< I2C master clock frequency */

16

17 #define ESP_SLAVE_ADDR 0x28 /*!< ESP32 slave address, you can set any 7bit value */

18 #define WRITE_BIT I2C_MASTER_WRITE /*!< I2C master write */

19 #define READ_BIT I2C_MASTER_READ /*!< I2C master read */

20 #define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/

21 #define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */

22 #define ACK_VAL 0x0 /*!< I2C ack value */

23 #define NACK_VAL 0x1 /*!< I2C nack value */

这里主要定义了相关引脚分批,从设备地址,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值