ESP32-S2的io寄存器使用疑惑
Posted: Fri Nov 12, 2021 3:20 am
请教一下esp32s2的io寄存器怎么使用
查询技术手册171页有关于io寄存器的描述,Register 5.2: GPIO_OUT_REG (0x0004)寄存器可以改变GPIO0-31的输出值,
Register 5.5: GPIO_OUT1_REG (0x0010)可以改变剩下的io输出值,应该如何使用? 上面两图( 图2、图3 )我都是使用GPIO_OUT_REG 和GPIO_OUT1_REG这俩寄存器将数据data放到寄存器使对应的管脚输出,但是输出的值不对,全是0
而当我使用 Register 5.3: GPIO_OUT_W1TS_REG (0x0008) 、Register 5.4: GPIO_OUT_W1TC_REG (0x000C)
Register 5.6: GPIO_OUT1_W1TS_REG (0x0014)、Register 5.7: GPIO_OUT1_W1TC_REG (0x0018) 这四个寄存器时,输出的值是正确的,
使用这四个寄存器的代码如下图(图1)所示 因为我这十六位数据是传给屏幕的,所以感觉使用GPIO_OUT_REG 和GPIO_OUT1_REG这两个寄存器会更好,传输一个数据还要进行十六次判断真的太浪费时间了,刷屏幕效果也很差。
另: 这个工程需要使用到读屏幕的功能,因此i2s不适用
查询技术手册171页有关于io寄存器的描述,Register 5.2: GPIO_OUT_REG (0x0004)寄存器可以改变GPIO0-31的输出值,
Register 5.5: GPIO_OUT1_REG (0x0010)可以改变剩下的io输出值,应该如何使用? 上面两图( 图2、图3 )我都是使用GPIO_OUT_REG 和GPIO_OUT1_REG这俩寄存器将数据data放到寄存器使对应的管脚输出,但是输出的值不对,全是0
而当我使用 Register 5.3: GPIO_OUT_W1TS_REG (0x0008) 、Register 5.4: GPIO_OUT_W1TC_REG (0x000C)
Register 5.6: GPIO_OUT1_W1TS_REG (0x0014)、Register 5.7: GPIO_OUT1_W1TC_REG (0x0018) 这四个寄存器时,输出的值是正确的,
使用这四个寄存器的代码如下图(图1)所示 因为我这十六位数据是传给屏幕的,所以感觉使用GPIO_OUT_REG 和GPIO_OUT1_REG这两个寄存器会更好,传输一个数据还要进行十六次判断真的太浪费时间了,刷屏幕效果也很差。
另: 这个工程需要使用到读屏幕的功能,因此i2s不适用