Giter Site home page Giter Site logo

zhouyunming / easyio-lib-for-esp32 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhiliangma/easyio-lib-for-esp32

0.0 1.0 0.0 679 KB

To simplify the development of ESP32 in ESP-IDF, Easyio provides a complete driver library

CMake 0.53% Makefile 0.20% Python 0.02% C 99.25% Batchfile 0.01%

easyio-lib-for-esp32's Introduction

Easyio 开源驱动库


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液晶屏(支持ST7735ST7735SST7789VILI9341ILI9488ILI9481ST7796SHX8357C8种IC,涵盖3.5寸以下的绝大多数液晶模组)
  • SPI_AS5047P/TLE5012B 磁编码器。
  • FT5/6xxx电容触摸屏。
  • NVS、FATFS、VFS、SD_CARD(SPI模式,1/4线SDIO模式)。
  • jpg解码(TJpgDec)
  • LCD 可以以 SPI-DMA 双缓冲环形队列的方式刷屏。(320x240分辨率,RGB565,SPI以80MHz速率通信,最大刷屏帧率53FPS;40MHz也能有30.2FPS。目前DMA加速仅完美支持ILI9341ST7789V两种驱动IC型号的屏幕)
  • LCD显示波动动效。

  借助ESP-IDF强大的框架底层,Easyio在此基础上对其API进行了二次封装,并添加了许多常用外设芯片的驱动代码。做到了一行API一个外设,一段代码一个功能。完善库的同时,给每个外设都提供了测试Demo,每个Demo都提供了README文档,并在.c.h源码保留了大量注释,夸张点说注释真的要比代码多,纯小白也能用的懂。

  目前已提供包含以上功能的32个Demo,未来打算继续加入jpeg解码库、OTA、LVGL、WIFI/BLE、有线以太网和一些网络通信的Demo,丰富库的应用范围。


如何使用

  库的导入方式异常简便,直接拖入工程的 components 文件夹下。并包含头文件#include "easyio.h",即可使用Easyio的全部功能。

  使用教程见我的CSDN博客: ESP32开源驱动库Easyio的使用

  开发板计划也在进程中,之前做了一版偏向于HMI的设计,出于外观考量接口都留在了背面,导致留出的接口较少且指示意义不强,对开发来讲并不友好,下一版会偏向传统设计。平铺放置,但功能毫不含糊,Demo提到的外设它都会有。硬件资料会在验证无误后同步上传。

  看都看到这儿了,还不多多star、点赞收藏。๑乛◡乛๑ 嘿嘿


清理工程,减小体积

  cleanBuild.bat 为编译文件的清理脚本,鼠标双击运行,可删除同文件夹下所有工程的编译文件。一般一个工程的大小在几百KB,但编译后会生成100多MB的 build 文件,清理后可大大减少存储占用空间。每次push源码前先运行下此脚本,清理所有工程,方便同步到 Github 仓库。


注意

  • Easyio建议搭配ESP-IDFV4.2版本使用,V4.3版本与我的Easyio驱动库有兼容性问题。发现很多奇怪现象,不单单是编译不通过的问题,有些能编译但在硬件上运行报错,就很离谱。而这些问题在V4.2上则不存在。鉴于V4.2已经对ESP32提供了足够的支持,V4.3着重添加了ESP32-S2/C3的功能,而自己的easyio库暂时没有兼并ESP32-S2/C3的精力,于是推荐使用V4.2版本。

乐鑫ESP-IDF 在线帮助文档

ESP-IDF 快速入门

ESP-IDF API编程指南

ESP32 硬件设计参考

easyio-lib-for-esp32's People

Contributors

zhiliangma avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.