首先我本来想用esp32s3核心板做个屏幕驱动的项目,然后开始的那些项目配置什么的就不说了,因为st7789v是我单独买的,所以要调配置。开始我直接用了spi_lcd_touch的例程,然后我的屏幕配了转接板,所以我以为就是很容易的把esp32和屏幕连在一起就好了。


一、最开始构建项目报错
最开始是直接用示例项目,然后报错找不到头文件"lvgh.h",然后我去文件夹确实没找到,我怀疑这个项目本身缺少文件,然后我去找官方的。

方法是:

在vscode的idf界面
→ welcome to idf的页面有显示新建project, example, management组件,就点最下面那个组件,然后自动弹到组件下载页面
→ 点进去能看到install,我开始点了install,也不知道安装成功没有,好像是成功了,deepseek说文件夹出现什么什么文件就是成功,然后下拉右侧能看到能下载项目(我在vscode下载不了,所以是在浏览器官网页面下载的)。

然后我仔细查看了,这里面确实有lvgl.h文件,我复制了,但是不知道放在哪个文件夹,尝试放在代码的#include包含的.h文件夹里,然后发现放的小文件夹都不一样,最后放在了compoment(好像是这个名,所有带#include和后缀.h都在这个大文件夹下)的文件夹下,然后删除原build文件夹,就可以正常构建项目了。
然后按照程序里的代码接GPIO口,第一次烧录成功了,显示的是一个仪表盘。

 我以为到这成功一大半了。想着改一下参数让屏幕布局完全不花屏,结果第二次烧录就出了问题。在我印象里好像第二次就烧录不上了,但是可以构建项目。这是我这昨天苦苦思考回忆到的一点蛛丝马迹。
(好的讲讲我的大概解决问题的习惯。我一般遇到问题都是先去问deepseek稍微判断一下,然后再去浏览器搜别人怎么解决的。)


二、烧录一次成功之后都烧录不了
我开始思考的是硬件问题:
(1)最开始我按了reset键,boot键,我以为他会像以前一样,恢复正常,然而并没有。然后就拔了数据线想重新上传代码,我还重新打开了个新项目,因为我怕我按错了什么改了代码配置什么的。没用😅
(2)然后把报错信息给deepseek,他说什么串口占用,又是老一套设备管理器检查什么的,然后还怀疑是驱动的问题,把驱动重新下载了一遍。没用😅
(3)然后deepseek后面给出建议按BOOT和RESET组合键,进入下载模式,我也是狗急跳墙他说什么我就做什么,完全忘了这个ai判断会有误导😭每次提醒自己不要太相信ai每次都忘。然后还根据他说的什么调配置什么的,自己都没看他说什么就跟着做了,虽然不知道改了什么参数配置,还好我的esp没被我乱调坏,想想就后怕。


但是后面我上网搜,好像大家也都有按组合键的。方法有两个,都可以让电脑识别出esp端口:
①此时esp32连接着电脑,按住boot键不要松开,然后按一下reset键,等两三秒后松开boot键。哎,确实奏效了,电脑有这个串口显示了,就是烧录的时候,电脑能判断出esp这个端口,然后烧录成功。
②断开esp和电脑的连接,先按住boot键不放,然后同时usb插上电脑,等几秒钟再放。这个也能识别出来。

但是都只能烧录一次,之后电脑已经识别不出来端口设备是esp了。而且到后面我拔插USB,还会弹出什么USB无法正常识别设备。然后此时我的做法是:
①怀疑这个端口被我搞坏了?我拿鼠标的usb连上了COM4,能正常使用。于是我又把esp换到COM3上,还是无法使用这个端口。排除了端口损坏的问题。不行✘
②然后deepseek猜测是屏幕拉低了GPIO0的电压,导致不能进入自动复位。上浏览器搜了也都是这一套的问题。然后我就把屏幕的vcc和gnd外接电源。不行✘
③然后就是找了复位模式的方法,GPIO0接esp的gnd,接好后再上电,然后烧录,烧录完和拔掉接地的线,按一下reset就好了。但是我试了,不行✘


然后考虑软件问题:
(1)而且我点的是那个“一键三连”的按键(构建项目,烧录,监视器,我后面就简称了),终端monitor一直显示waiting for download,问deepseek还说端口占用。解决方法:
①然后我在想难道这个程序有占用串口的部分,仔细查了一下没有。不行✘
②然后又在想这个程序是不是真的上传上去了,我把屏幕显示仪表盘的代码改了,只显示一个干干净净的仪表盘,这时候还是要手动复位的(就是那个boot+reset组合键),然后屏幕确实更新了我最新的代码。但是不行✘


(2)而且此时我注意到我的esp一直亮着小红灯,我都怀疑我是不是按了组合键设置错了什么模式。(此时开始严重怀疑deepseek教我的啥啊)然后看了一下技术手册,确实说了有不同模式,然后我怀疑我调到了别的模式,但是什么0,1组合的看寄存器什么的,我又不是很懂。去浏览器搜了,都说按组合键,但是我又想要自动烧录。

我不记得在哪看到的了,我把搜到的资料放一下图片吧:

 

 

 

然后去B站搜,有个博主的视频我觉得很有道理,但是我好像似懂非懂,我跟着他测了GPIO0的电压,确实是拉高的,那就说明是可以自动烧录的状态,反正也不懂为什么我的不行,而且他用的是另一个软件,不是vscode。还刷到另一个人一样到处和我问,没解决😂感觉我俩都好惨。我把博主的讲的那个照片放下面,和他用一样的软件的可以参考吧。

 

(3)这个博主其实是给了我一点启发的,硬件有点问题的想法,就是要重新配置模式,他是去看电路图,然后我想了我只看了技术手册还没看电路图和规格说明书,反正我有资料没看,我就去看。然后结合我们的deepseek大师配合,终于发现问题了,这个程序代码的GPIO19和USB有关联,说明传输数据用的,如果用这个口和屏幕传输数据的话,就会严重阻碍esp和电脑通讯!!!

 

 

 所以就是示例代码屏幕用的引脚和esp32s3本身冲突了!!!只要换个引脚就好了!!!(太恐怖了了折腾了我两天两个晚上)

 

(其实还有一个保底的方法就是问商家,但是我又觉得毕竟是保底嘛我不想问。还有一个最保底的,把esp用官方esptool.py恢复出厂设置,其实我那时候下载了,但是我看到恢复界面要填什么地址,下载的文件夹又是空的,我想到还没找出问题万一以后又这样不知道问题的话很麻烦。)


所以,会看资料的不会看资料的都要去看一下资料,专业名词叫什么端口复用,反正就是引脚冲突,特殊引脚不要用就对了。

最后希望能帮到大家,我也是个小白,希望大佬多多指教,觉得我有问题的直接指出来,谢谢啦。🌹🌹🌹

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐