ESP32开源驱动库Easyio的使用,基于ESP-IDF开发框架,非Arduino
Posted Mark_md
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP32开源驱动库Easyio的使用,基于ESP-IDF开发框架,非Arduino相关的知识,希望对你有一定的参考价值。
Easyio
是一款适配于ESP-IDF
框架的开源驱动库
,以支持ESP32
的简便开发。目的是简化乐鑫ESP-IDF
开发框架的使用难度。(真要方便的话,有现成的Arduino和Platform可以用,不过实在迫于工作要求,有的开源东西不让用,同时便于对接FAE,于是就有了 Easyio
)
功能上,Easyio
已初具雏形,目前涵盖如下的驱动:
- LED、GPIO(+中断)
- 按键(队列方式,数目几无上限)、触摸按键
- ADC(8通道)、DAC(2通道)
- LEDc、PWM(+输入捕获)、PCNT(编码器计数)
- RMT红外、RMT-WS2812B-RGB灯带
- UART、RS485
- I2C_TOOLS、I2C_MPU6050、I2C_AHT20
- SPI液晶屏(支持
ST7735
、ST7735S
、ST7789V
、ILI9341
、ILI9488
、ILI9481
、ST7796S
、HX8357C
8种IC,涵盖3.5寸以下的绝大多数液晶模组) - SPI_AS5047P/TLE5012B 磁编码器。
- FT5/6xxx电容触摸屏。
- NVS、FATFS、SD_CARD(SPI模式,1/4线SDIO模式)。
借助ESP-IDF
强大的框架底层,Easyio
在此基础上对其API进行了二次封装,并添加了许多常用外设芯片的驱动代码。做到了一行API一个外设,一段代码一个功能。完善库的同时,给每个外设都提供了测试Demo
,每个Demo
都提供了README
文档,并在.c.h
源码保留了大量注释,夸张点说注释真的要比代码多,纯小白也能用的懂。
目前已提供包含以上功能的32个Demo
,未来打算继续加入jpeg解码库、OTA、LVGL、WIFI/BLE、有线以太网和一些网络通信的Demo,丰富库的应用范围。
如何使用 easyio
1、ESP32开发环境搭建
ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建
2、获取Easyio库源码+Demo
Github源码仓库:easyio-lib-for-esp32
3、Easyio库导入到工程中
- 库的导入方式异常简单,直接将文件夹
easyio_lib
,拖入到工程的components
文件夹下。 - 并包含头文件
#include "easyio.h"
,即可使用Easyio的全部功能。
4、运行Easyio的测试Demo
Easyio
库中,给各个.c.h
模组都配套了测试Demo
。- 打开
VSCode
,文件
-打开文件夹
,选择要运行的测试Demo
目录。
- 打开测试工程后,左下角,点击图标,来
选择端口
、编译
、下载
、打开监视器调试设备
。 - 所有的操作均可在VSCode上一站式进行。
5、README帮助文档的使用,注释的使用
- 每个
Demo
都配有细致的README.md
,点击VSCode右上角的打开侧边预览
即可查看说明文档。 README.md
通常包含有:例程简介、硬件连接、运行现象、关键函数(API用法)、注意事项。Easyio
驱动单一外设时,大多数只要一行代码就能解决问题。小但不简单。
- 考虑到博客的教程可能跟不上源码更新速度,于是干脆将注释写的详细些。这满屏幕的注释、规范的格式,请把细致打到评论区。即使没有正儿八经的说明文档,光看注释也能将用法理解个通透。
6、清理工程,减小体积
cleanBuild.bat
为编译文件的清理脚本
,鼠标双击运行,可删除同文件夹下所有工程的编译文件。一般一个工程的大小在几百KB,但编译后会生成100多MB的 build
文件,清理后可大大减少存储占用空间。每次push源码前先运行下此脚本,清理所有工程,方便同步到 Github
仓库。
注意
Easyio
建议搭配ESP-IDF
的V4.2
版本使用,V4.3版本与我的Easyio
驱动库有兼容性问题。发现很多奇怪现象,不单单是编译不通过的问题,有些能编译但在硬件上运行报错,就很离谱。而这些问题在V4.2
上则不存在。鉴于V4.2
已经对ESP32提供了足够的支持,V4.3
着重添加了ESP32-S2/C3
的功能,而自己的easyio
库暂时没有兼并ESP32-S2/C3
的精力,于是推荐使用V4.2
版本。
小结
有Easyio
如此神器,在今后的ESP-IDF
开发过程中可谓如鱼得水、如虎添翼,节省掉重写底层框架和调Bug的时间,必能更加游刃有余的完成应用层的工作。
看都看到这儿了,还不多多star、点赞收藏。๑乛◡乛๑ 欢迎评论区留下您的交流意见。
开发板计划也在进程中,之前做了一版偏向于HMI的设计,出于外观考量接口都留在了背面,导致留出的接口较少且指示意义不强,对开发来讲并不友好,下一版会偏向传统设计。平铺放置,但功能毫不含糊,Demo提到的外设它都会有。硬件资料会在验证无误后同步上传。
相关教程
本专栏内容:
ESP32开发环境搭建:ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建
乐鑫ESP-IDF 在线帮助文档
以上是关于ESP32开源驱动库Easyio的使用,基于ESP-IDF开发框架,非Arduino的主要内容,如果未能解决你的问题,请参考以下文章
基于Lua框架下的合宙ESP32C3+1.5‘’Eink墨水屏天气时钟+OLED开源项目分享
ESP8266 /ESP32软件IIC方式驱动OLED显示字符,基于micropython
基于arduino的ESP32 学习笔记 TFT_eSPI和LVGL库使用笔记
基于arduino的ESP32 学习笔记 TFT_eSPI和LVGL库使用笔记