ESP32-S2的io寄存器使用疑惑

Moderator: ESP_Bob

Saul Goodman
Posts: 3
Joined: Mon Oct 11, 2021 7:05 am

ESP32-S2的io寄存器使用疑惑

Postby Saul Goodman » 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.png
图2.使用GPIO_OUT_REG和GPIO_OUT1_REG
2.png (25.69 KiB) Viewed 7504 times
3.png
图3.使用GPIO_OUT_REG和GPIO_OUT1_REG
3.png (21.34 KiB) Viewed 7504 times
上面两图( 图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)所示
1.png
图1.使用 置位,清零 寄存器
1.png (98.26 KiB) Viewed 7504 times
因为我这十六位数据是传给屏幕的,所以感觉使用GPIO_OUT_REG 和GPIO_OUT1_REG这两个寄存器会更好,传输一个数据还要进行十六次判断真的太浪费时间了,刷屏幕效果也很差。
另: 这个工程需要使用到读屏幕的功能,因此i2s不适用

Who is online

Users browsing this forum: No registered users and 69 guests