最近,我从 ESP8266 迁移到 ESP07S。我发现了很多奇怪的事情并在这里寻求帮助。
我跟踪代码深入到硬件设置代码并将 ESP8266 I2C 从 GPIO-4/5 更改为 ESP07S GPIO-2/14。我注意到这个核心使用软件来模拟 I2C 协议,并计算出通过
(
) 并重新编译它。I2C 使用 2/14 针完美工作。
。我试图将它用作 GPIO,因此,我将它设置为 INPUT 引脚并将它们连接到按钮,但这不是我所期望的。
无论我更改代码以检测 HIGH 还是 LOW。什么都没发生 !(如果按下,我连接按钮拉低到 GND。)
之后我研究了一个 excel 文件,它定义了
中的所有 GPIO (
) 其中有一个宏来重新定义管脚功能。对于 GPIO-4,它有两个功能。一个是
#define PERIPHS_IO_MUX_GPIO4_U (PERIPHS_IO_MUX + 0x3C)
#define FUNC_GPIO4 0
#define FUNC_CLK_XTAL 1
#define PERIPHS_IO_MUX_GPIO5_U (PERIPHS_IO_MUX + 0x40_GPIO5C)
#define FUN
#define FUNC_CLK_RTC 1
#define PIN_PULLUP_DIS(PIN_NAME) CLEAR_PERI_REG_MASK(PIN_NAME, PERIPHS_IO_MUX_PULLUP)
#define PIN_PULLUP_EN(PIN_NAME) SET_PERI_REG_MASK(PIN_NAME, PERIPHS_IO_MUX_PULLUP)
#define PIN_FUNC_SELECT(PIN_NAME, FUNC) do {
WRITE_PERI_REG(PIN_NAME,
(READ_PERI_REG(PIN_NAME)
& (~(PERIPHS_IO_MUX_FUNC<
|( (((FUNC&BIT2)<<2)|(FUNC&0x3))<
} while (0)
//}}
因此,我使用以下代码尝试重新定义引脚 4,但没有成功。
0