esp32制作小电视学习笔记
假期闲来无事,与其虚度,不如做点事干 你信吗?我不信 ( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)。于是就买了个开发板,正好借此学一学C语言。
于是,就立马买了需要的东西,清单如下:
物品 | 价格 | 数量 | 备注 |
---|---|---|---|
Esp32 DevKit v1 30pin开发板 | 21.5 | 1 | 有30pin和36pin的版本 |
40P彩排杜邦线 | 2.81 | 1 | 母对母 |
1.8寸 彩色TFT屏幕 | 20 | 1 | 不带触摸 |
开发板连接线 | 0 | 0 | 家里找的 |
*注意:我买的屏幕型号是MSP1803,需要连接背光才能显示 *
一共44.31块,还行吧。
之后就找了个做小电视的视频就开始学了。
然后我懵了,我没学过单片机,大一只学过Python和HTML入门,我看不懂商家给的资料,也看不懂UP给的教程。
然后鼓捣了好久。玩了好久,才想起来有个单片机。
现在才整的有些样子,现在基本完成了,那么我就把我一路上踩过的坑说一下。
获取Chip ID报错
报错显示 “ exec: ‘cmd’: executable file not found in %PATH% 为开发板 ESP32 Dev Module 编译时出错。”
提示没有配置环境变量,配置完成,问题解决。
屏幕显示问题
屏幕不显示
检查自己的屏幕,教程里面是不接背光的,可以烧录进去,然后接背光试试。我今天(2022.2.12)才发现我的屏幕是一定要接背光的,我还搞了好久。
图片显示不正常,且有小部分花屏
有的人可能烧录进去以后发现屏幕是这个样子:
图片显示非常不正常,还有花屏的情况。
根据这个帖子的说法,是设计问题,可以通过切换配置文件的参数解决 。解决方法来自这个帖子。
按照这样的路径(.\arduino\arduino-nightly\hardware\espressif\esp32\libraries\TFT_eSPI)打开TFT_eSPI,找到User_Setup.h,打开。
找到这样的地方,并且把原来的#define ST7735_GREENTAB2注释掉,把#define ST7735_REDTAB解除注释,就显示正常了。
此方法选择的参数有可能其他屏幕无效,可以在几个参数切换试试看
然后重新烧录进去程序。
这样就显示正常了。
色彩显示错误
烧录进去了程序,有可能出现这样的情况:本该显示蓝色的地方显示了黄色。这是因为UP的程序里使用的是BGR,而你的屏幕是RGB,这样导致的色彩问题。
解决办法:
按照这样的路径(.\arduino\arduino-nightly\hardware\espressif\esp32\libraries\TFT_eSPI)打开TFT_eSPI,找到User_Setup.h,打开。
找到#define TFT_RGB_ORDER TFT_BGR 这样的一行,将其注释掉,启用上面的define TFT_RGB_ORDER TFT_RGB。
完成以后就是这样子
显示不全
UP的代码烧录进去以后会发现有个问题,就是在天气页面,如果显示三个字的地名或者显示风向为“东北风‘的时候会显示不全,这时候就要调整一下显示的位置:
我这里把调好的放在下面
|
|
接线问题
有的屏幕的A0引脚接那里?
可以接到DC的引脚那里,性质相同 ,都是数据选择功能
其他的引脚接哪里?以我的为例。
屏幕引脚标注 | 开发板引脚标注 | 功能 |
---|---|---|
VCC | VIN | 正极 |
GND | GND | 负极 |
CS | D27 | 片选信号 |
RESET | D26 | 复位信号 |
A0(DC) | D25 | 寄存器/数据选择信号 |
SDA | D23 | SPI 总线写数据信号 |
SCK | D18 | SPI 总线时钟信号 |
LED | 3V3 | 背光 |
其他
1.8寸的TFT屏幕,型号是MSP1803的相关的资料:
http://www.lcdwiki.com/res/MSP1803/1.8inch_SPI_Module_MSP1803_User_Manual_CN.pdf
30引脚的DOIT Esp32 Dev Kit v1开发板的引脚图,可以参考下:
https://www.electronicshub.org/esp32-pinout/
Esp32 DevKit v1的30引脚和36引脚的对比: