安装程序:SDK 版本 2.0.0
硬件:ESP-12E
我已连接DS3231 RTC模块
http://www.ebay.in/itm/252641600523使用 ESP-12E 如下所示
法典:
全选
ESP-VCC -> DS3231-VCC
ESP-GND -> DS3231-GND
ESP-GPIO2 -> DS3231-SDA
ESP-GPIO14 -> DS3231-SCL
我希望我的连接是正确的,因为 i2c_master.h
法典:
全选
#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U
#define I2C_MASTER_SDA_GPIO 2
#define I2C_MASTER_SCL_GPIO 14
#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
#define I2C_MASTER_SCL_FUNC FUNC_GPIO14C FUNC_GPIO14
我在 user_main.c 中有以下代码。
法典:
全选
void user_rf_pre_init(void)
{
}
uint32 ICACHE_FLASH_ATTR
user_rf_cal_sector_set(无效)
{
enum flash_size_map size_map = system_get_flash_size_map();
uint32 rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 8;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_1024:
rf_cal_sec = 512 - 5;
break;
case FLASH_SIZE_32M_MAP_512_512:
case FLASH_SIZE_32M_MAP_1024_1024:
rf_cal_sec = 1024 - 5;
break;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
/******************************************************************************
* Func
tionName : user_init
*******************************************************************************/
void user_init(void)
{
uart_reattach();
os_printf("rnrn============SDK version:%s============rn", system_get_sdk_version());
i2c_master_gpio_init();
i2c_master_init();
i2c_master_start();
// write address & direction
i2c_master_writeByte((uint8)(0x68 << 1));
if (!i2c_master_checkAck()) {
os_printf("在 i2C 上写入 DS3231 时出错rn");
i2c_master_stop();
return;
}
i2c_master_stop();
}
我正在打印
在 i2C 上写入 DS3231 时出错
这意味着 i2c_master_checkAck() 是 returnnig false。
我可以请求专家告诉我为什么此代码不起作用。