ESP32制作小电视学习笔记

假期闲来无事,与其虚度,不如做点事干 你信吗?我不信 ( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)。于是就买了个开发板,正好借此学一学C语言。

于是,就立马买了需要的东西,清单如下:

物品价格(元)数量备注
Esp32 DevKit v1 30pin开发板21.51有36pin的版本
40P彩排杜邦线2.811母对母
1.8寸 彩色TFT屏幕201不带触摸
开发板连接线01家里找的
物品清单

[buy] 我买的屏幕型号是MSP1803,需要连接背光才能显示 [/buy]


一共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解除注释,就显示正常了。

[buy] 此方法选择的参数有可能其他屏幕无效,可以在几个参数切换试试看[/buy]

然后重新烧录进去程序。

这样就显示正常了。

色彩显示错误

烧录进去了程序,有可能出现这样的情况:本该显示蓝色的地方显示了黄色。这是因为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的代码烧录进去以后会发现有个问题,就是在天气页面,如果显示三个字的地名或者显示风向为“东北风‘的时候会显示不全,这时候就要调整一下显示的位置:

我这里把调好的放在下面

/*******************天气界面显示****************/
void show_weather(uint16_t fg,uint16_t bg)
{
    
    tft.setSwapBytes(true);             //使图片颜色由RGB->BGR
    tft.pushImage(0, 0,  64, 64, weather[ph]);

    showMyFonts(75, 25, now_address.c_str(), TFT_WHITE);//因为图片大小的限制,如果是四个字的地名的话需要调整图片大小,还有本行调小X轴数值(数字75所在的位置)
    showMyFonts(75, 45, now_wea, TFT_WHITE);//天气

    tft.pushImage(0 , 65, 30, 30, temIcon);
    tft.pushImage(0, 95, 30, 30, humIcon);;//湿度
    tft.pushImage(50, 65, 30, 30, rainIcon);//雨
    tft.pushImage(45, 95, 30, 30, windIcon);//风
    
    showtext(25,75,1,1,fg,bg,now_high_tem + "/" + now_low_tem);//低温高温
     showtext(25,75,1,1,fg,bg,now_high_tem + "/" + now_low_tem);//低温高温
    showtext(85,75,1,1,fg,bg,now_rainfall +"mm");//降水量
    showtext(25,105,1,1,fg,bg,now_hum+"%");//湿度
    String now_wind = now_wind_direction + "风";//什么风
    showMyFonts(75, 100, now_wind.c_str(), TFT_WHITE);
    get_weather();// 再次运行获取天气的函数,保证天气更新

}

接线问题

A0接那里?

可以接到DC的引脚那里,性质相同 数据选择功能

其他的引脚接哪里?以我的为例。

屏幕引脚标注开发板引脚标注功能
VCCVIN电源正极
GNDGND电源地
CSD27片选信号
RESETD26复位信号
A0(DC)D25寄存器/数据选择信号
SDAD23SPI 总线写数据信号
SCKD18SPI 总线时钟信号
LED3V3背光
(无需控制接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引脚的对比:

https://cloud.tencent.com/developer/article/1749032

作者: Xenolies
文章标题 :ESP32制作小电视学习笔记
文章链接 : https://xenolies.xyz/2022/02/12/411/
文章URL : https://xenolies.xyz/2022/02/12/411/
本文采用 CC BY-NC-SA 4.0 协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇