亲爱的StackOverflowers,
我正在尝试将Adafruit的HX8357D 3.5“ TFT(链接)与esp32一起使用。TFT驱动程序具有两个接口:SPI和8位并行。Adafruit 的提供的库(链接)仅支持esp32上的SPI。我需要esp32具有更高的显示速度,所以我决定自己尝试添加对esp32的支持,虽然我完全没有这种编程经验,但是我喜欢挑战。
我通过对Arduino Uno / Mega支持进行反向工程来弄清楚8位接口是如何工作的。为了增加对esp32的支持,我需要一种直接操作控制esp32的gpio端口的寄存器的方法。我在互联网上四处张望,但是很少有如何执行此操作的示例。Espressif(link)的技术参考手册包含所有需要的信息,但是我不够熟练,无法弄清楚如何将其转换为代码。
要对esp32进行编程,我使用esp32 Arduino内核。本示例(链接)显示了如何将gpio引脚设置为输出,并直接使用寄存器将其设置为高电平和低电平。问题是我需要能够将8个引脚设置为输出,向它们写入数据,使其成为输入,然后从它们读取数据,所有这些都使用寄存器而不是使用pinMode,digitalRead和digitalWrite函数。
我知道它在Arduino Uno / Mega上的工作方式,其中有三个寄存器控制端口:
但是,这在esp32上如何工作?如何使用寄存器创建这种8位并行通信?
如果有人在这个主题上比我有更多的专业知识,我将不胜感激。提前致谢。
如何获取const char*数组索引的长度?
矢量:
std::vector<const char*> _infoBarText;
Run Code Online (Sandbox Code Playgroud)
const char*[]:
const char* text[4] = {"Current T:", "Target T:", "Time elapsed:", "Time remaining:"};
Run Code Online (Sandbox Code Playgroud)
将char数组分配给向量:
_infoBarText.assign(text, text+4);
Run Code Online (Sandbox Code Playgroud)
如何"current T"从向量中获取单个字符串的长度?