完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
是否可以使用 GPIO13 和 GPIO12 进行 I2C 通信?我不确定它是否在这些引脚上工作。
我正在使用 ESP12 板和 SDK v1.5.1。 我在 i2c_master.h 文件中将 SDA 引脚更改为 13,将 SCL 更改为 12,但没有收到任何响应。 #define PERIPHS_IO_MUX_GPIO13_U (PERIPHS_IO_MUX + 0x8) #define PERIPHS_IO_MUX_GPIO12_U (PERIPHS_IO_MUX + 0x4) #define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO13_U #define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO12_U #define I2C_MASTER_SDA_GPIO 13 #define I2C_MASTER_SCL_GPIO 12 #define I2C_MASTER_SDA_FUNC FUNC_GPIO13 #define I2C_MASTER_SCL_FUNC FUNC_GPIO12 i2c 上的传感器读取代码: i2c_master_start(); i2c_master_writeByte(_i2caddr); uint8 ack = i2c_master_getAck(); if (ack) { char info[50]; os_sprintf(info, "addr %d not ack for resetrn", _i2caddr); uart0_sendStr(info); i2c_master_stop(); return ; } |
|
相关推荐
1个回答
|
|
是的,您可以使用GPIO13和GPIO12进行I2C通信。但是,您需要确保正确配置和初始化这些引脚。以下是一些建议和步骤,以确保您的I2C通信正常工作:
1. 首先,确保您的硬件连接正确。将SDA连接到GPIO13,将SCL连接到GPIO12。 2. 在您的代码中,您已经将SDA和SCL引脚分别设置为GPIO13和GPIO12。这是正确的,但您还需要确保在初始化I2C接口时使用这些设置。 3. 在初始化I2C接口之前,确保已经配置了GPIO13和GPIO12为开漏输出。您可以使用以下代码片段来配置这些引脚: ```c gpio_output_set(0, 0, 0, (1ULL<<13) | (1ULL<<12)); ``` 4. 接下来,初始化I2C接口。您可以使用以下代码片段来初始化I2C接口: ```c i2c_master_gpio_init(); ``` 5. 在初始化I2C接口之后,您可以使用`i2c_master_start()`、`i2c_master_writeByte()`、`i2c_master_readByte()`等函数来执行I2C通信。 6. 如果您仍然无法接收到任何响应,请检查您的设备是否正常工作,以及是否正确连接了所需的拉上电阻。 7. 另外,请确保您的设备地址和通信速度设置正确。您可以在`i2c_master_init()`函数中设置这些参数。 8. 如果您仍然遇到问题,可以尝试在ESP8266的论坛或社区寻求帮助,或者查看相关的示例代码和文档。 总之,使用GPIO13和GPIO12进行I2C通信是可行的。确保正确配置和初始化这些引脚,然后使用I2C接口函数进行通信。如果问题仍然存在,请检查硬件连接和设备设置。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 13:38 , Processed in 0.933176 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191