esp32s3&arduino&PlatformIO环境配置&st7789点屏&lvgl学习笔记
翻开一看又是半年没有写什么东西了
想着行动力行动力但是下班之后就好想睡觉
彻底变成了社畜的模样
但是哪怕迷茫也要前进呀
趁着年前熟悉一下很久就想学但是一直没学两三年没碰都快要忘干净了的一些事吧
比如怎么用单片机和一块彩屏画出一个好看的UI?也熟悉一下比较新的器件和开发方式吧
权当是复健咯
想了想还是尽量写写blog做笔记吧 方便日后又忘得差不多了的时候翻来复习?虽然也有用OneNote来记录的习惯但是还是太零散了 翻找起来也麻烦
关于mcu和开发板
现在新鲜的mcu真挺多
有时候感觉自己还在几年前的f103c8t6小蓝板的时代
也确实是太久没玩什么新东西了
虽然esp32s3也算不上什么太新的玩意 不过生态也比较成熟 资料挺多 性能也够强,想要推屏幕的话,想着还是要找个主频高内存大的片子,就用它吧
乐鑫的产品线真够乱的(摔
去某宝随便买了个看着顺眼的核心板长得很像小蓝板很亲切
这里是资料:https://wiki.luatos.com/chips/esp32s3/board.html
原理图也很简单
开发环境
esp32主流的开发环境应该算是有两套
一个是官方的esp-idf的C sdk,功能齐全资料也完善,不过听说在win下配环境比较麻烦,学习起来也略微繁琐
另一个就是arduino固件的支持,写起来简单,兼容arduino库用起来方便,但是对mcu底层就没那么好操控了
因为是初步入门复健所以还是先用简单的arduino吧
arduino IDE环境
下了个最新的arduino IDE
不得不说虽然2.0的arduino界面变了很多 但是难用这一点上还是一如既往
配置倒是很简单 点开开发板管理器 搜esp32 然后直接装这个官方的包就好了
不过要自备魔法手段 网络并不太好 包挺大的得装一会(装不上的话还有各种手段 这里不谈
装完之后随便选一个esp32s3的板子
看下上面的开发板pinmap,GPIO10和11就是两颗LED 想想如果脑子正常的话esp32的gpio和arduino的gpio号应该是一样的吧(应该?)别跟树莓派那样有好几种编号就好
于是随便撸了一个hello world试一下
1 | void setup() { |
插上usb,可以自动识别com号,编译,下载
闪灯ok,串口输出ok
第一步算是跑起来了
碎碎念
本来还想的很复杂 因为这块合宙的开发板默认推荐的开发环境是他们自家的sdk(猜应该也是一种上层封装的固件吧,没仔细研究)
还想着是不是还得需要先去刷入arduino的固件,刷bootloader什么的
照着网上搜的arduino环境配置方法去先这样直接点了下载也只是想先尝试一下
没想着能成功的
结果一遍就刷进去了 草
看起来似乎这个arduino的工作方式不是以前传统AVR的那种通过bl支持的?是直接用arduino库编译了一个普通的esp32固件然后用串口isp烧录进去就ok了吗
好吧 先不管了 总之是搞定了 这方面的细节就之后有机会再学习了吧
尝试点屏
关于屏幕
练手就从最简单经典的搞起吧
去x宝买了块最经典的st7789的2寸320x240全彩tft
感慨下现在屏幕也挺便宜了 这种全彩的十块上下就能买到了
还记得以前黑白12864都是珍贵东西要二三十的年代…
没啥可说的 很简单的玩意
懒得打板所以顺便搞了个fpc转接板然后用杜邦线连了一下
这里重要的IO就是SPI的三根线、RST复位、DC数据命令选择这五个
也没多想直接按着上面的开发板pinmap把SPI接到了14、17、18(屏幕都是从机spi,只用TX单向所以只接了MOSI),剩下RST和DC随便接了IO 0和1
嗯…这就为后面埋下了大坑
通用驱动库点亮测试
直接上lvgl好像有点太快了
还没有点亮呢 至少先驱动起来看看
于是找个普通的st7789驱动库吧
屏幕卖家自然是带了一些例程代码的
但是翻了一下,不是51的就是stm32的。大概读了一下代码,就是基础的底层驱动,还有画线写字之类的简单图形库。虽然也不是不能把这玩意移植到arduino上,但是这不是懒嘛…
都用arduino了,图的不就是不用自己写库么
so放弃卖家的库,想来7789这种烂大街的玩意肯定有一堆开源库,屏幕不太特殊的话应该是可以直接点亮的吧
去arduino上搜一搜好了
果然出来了一大堆
既然只是测试用(之后还是要换lvgl的),也就没太考虑去比较哪个库更好
第一个看着就ok,装来试一下吧
未完待续…