当前位置: 首页 > news >正文

SOC-ESP32S3部分:7-如何学习ESP32S3-IDF开发

飞书文档https://x509p6c8to.feishu.cn/wiki/GBQ4wjSakiCxIVkfr4zcJl1Tn5b

通过前面几章的学习,我想大家都感觉到了,ESP32的开发和普通单片机开发还是有一定差异的,我们在学习51时主要学习的是寄存器的开发,学习STM32时,主要学习的是各类芯片资源、外设的库函数开发,而学习ESP32时,除了基础芯片资源、外设,还有各类WiFi、蓝牙、网络、安全、系统、音频等等模块。

我们可以在Espressif\frameworks\esp-idf-v5.4\examples看到

sql
bluetooth
build_system
common_components
custom_bootloader
cxx
ethernet
get-started
ieee802154
mesh
network
openthread
peripherals
phy
protocols
provisioning
security
storage
system
wifi
zigbee

ESP32的资源非常多,大模块包含蓝牙、WiFi、系统、外设、存储、安全、配网联网等等,每个大模块又包含非常多的小模块,对于这类芯片的应用,我们不可能像学习基础教程一样,逐个模块进行讲解,那样可能几百节课程都讲不完。

1.1、为何不像51STM32课程一样讲解?

我们在企业做项目时,可能这个项目用乐鑫的ESP32,下一个项目又用博通的BKxxx,再下一个可能又用其它家的,国内的WiFi类芯片厂家也非常多:

乐鑫科技(Espressif)
简介:专注于物联网领域,是全球领先的无晶圆厂半导体公司。其推出的 ESP 系列 WiFi 芯片在全球物联网市场应用广泛。
代表产品:ESP8266、ESP32 等。ESP8266 是一款高性价比的单芯片,集成了 TCP/IP 协议栈,可独立运行或作为从设备连接到其他主机;ESP32 是双核处理器,具备更强大的性能和丰富的外设接口,支持 WiFi 和蓝牙双模通信。
应用场景:智能家居、智能照明、智能穿戴、工业监控等领域。瑞昱(Realtek)
简介:中国台湾的半导体公司,在网络通信芯片领域有深厚的技术积累和广泛的市场份额。
代表产品:RTL8188、RTL8723 等系列芯片。RTL8188 系列具有较高的集成度和稳定性,广泛应用于 USB 无线网卡等设备;RTL8723 系列支持 WiFi 和蓝牙功能,常用于笔记本电脑、平板电脑等移动设备。
应用场景:消费电子、计算机外设等领域。博通集成(Beken)
简介:国内知名的无线通讯集成电路芯片设计公司,专注于无线通讯芯片的研发与销售。
代表产品:BK72XX 系列芯片。该系列芯片集成了高性能的 MCU 和 WiFi 模块,支持多种通信协议,具有低功耗、高集成度等特点。
应用场景:智能家居、智能安防、健康医疗等领域。紫光展锐
简介:是中国集成电路设计产业的龙头企业,在移动通信和物联网领域拥有丰富的产品线和技术实力。
代表产品:春藤系列芯片在物联网领域具有广泛应用,部分产品集成了 WiFi 功能,具备高性能、低功耗等特点。
应用场景:智能终端、车联网、工业物联网等领域。联盛德微电子(WinnerMicro)
简介:专注于无线通信芯片的研发、生产和销售,为客户提供高性能、低功耗的无线通信解决方案。
代表产品:W600、W800 等系列芯片。W600 芯片支持 802.11b/g/n 标准,集成了 32 位 MCU,具有丰富的外设接口;W800 芯片在性能和功能上进一步提升,支持更多的通信协议和应用场景。
应用场景:智能家居、智能玩具、智能电表等领域。翱捷科技(ASR)
简介:一家提供无线通信、超大规模芯片的平台型芯片企业,产品覆盖蜂窝通信芯片、非蜂窝通信芯片等多个领域。
代表产品:ASR650X 等系列 WiFi 芯片,具有高集成度、低功耗等特点,可广泛应用于物联网设备。
应用场景:物联网、智能硬件等领域。

所以不可能等你把所有模块都学习完才开始做项目,更多的是我们需要实现什么功能,用到哪些知识,才针对具体进行学习,而很多其它厂家的芯片,市面上都是没有教程的,这时候应该如何开展应用呢?

这也是这套课程想教给大家的:如何快速上手使用一款新的芯片进行开发。

2.1、如何快速上手开发

无论使用哪个厂家哪款芯片,最高效方法的办法只有两种:官方文档和示例源码。

至于芯片视频教程,其实在企业中选用的芯片,绝大部分是没有视频教程的,技术支持都是不确定项,如果你在头部企业还好,芯片原厂会有专门对接的技术支持,可以大大提高你的开发效率,基本上就是不懂就问,问了就有人答,这是最理想状态,那如果是最坏状态呢?视频教程、论坛、技术支持都没有的情况下,我们如何使用官方文档和示例源码进行开发呢?

我们可以参考以下几个步骤:

  1. 拿到开发板,参考文档,搭建好环境,跑起第一个工程,这就是我们前面的课程内容。
  2. 分解功能,确定需要用到的技术,例如我们项目需要用到按键、指示灯、显示屏、WiFi联网、麦克风,那我们需要关注的就是以下技术点:
按键-》GPIO输入或外部中断
指示灯-》GPIO输出
显示屏-》SPI
联网-》WIFI
麦克风-》I2S

当所有单模块都开发完成,驱动起来后,我们就需要整合,整合过程中可能需要用到操作系统多任务、定时器、消息队列、持久化存储等技术,我们再针对性学习这些技术点。

所以对于我们,必须有针对性了解对应技术,而不是全部都搞明白了才去开发。

所以课程的思路也是这样,不会逐个模块、逐行代码,逐个API接口讲解,只带大家快速了解IDF的功能和结构,后续大家就可以参考官方文档、学长文档、例程源码,逐一学习相关产品开发。

下节课,我们就以需要实现GPIO输出控制LED为例,带大家学会使用IDF进行ESP32开发。

http://www.xdnf.cn/news/596197.html

相关文章:

  • Katoolin3 项目介绍:在 Ubuntu 上轻松安装 Kali Linux 工具
  • 【题解-洛谷】P9644 [SNCPC2019] Turn It Off
  • 1.2V超低功耗晶振:物联网设备续航提升的秘密武器
  • ThreadLocal底层原理解析
  • 比较结构的连通性
  • MySQL多线程备份工具mysqlpump详解!
  • 骰子游戏(2023睿抗省赛)
  • C++函数封装和绑定
  • 硬件,软件和进程
  • 过氧化物酶的邻近标记技术(APEX):最灵敏的蛋白互作方法
  • Python生成物理引擎的简单知识图谱
  • SOC-ESP32S3部分:6-任务看门狗
  • 101个α因子#18
  • 【Python/Tkinter】实现程序菜单
  • JVM部分内容
  • mybatisplus公共字段自动填充
  • 1.3 任务Task的说明(Xqt)
  • [Linux文件系统] “我的文件在哪?”FHS标准深度解析与核心目录实用指南
  • MVC和MVVM架构的区别
  • sqli-labs——二次注入
  • 常见的慢SQL优化方式
  • strlen和sizeof,const char *、char * const 和char []区别
  • 第二十九天打卡
  • 网络割接的详细流程和关键点
  • 关于常见日志的几种级别和格式
  • 加工生产调度(Johnson算法)
  • vue vite textarea标签按下Shift+Enter 换行输入,只按Enter则提交的实现思路
  • 准备好,开始构建:由 Elasticsearch 向量数据库驱动的 Red Hat OpenShift AI 应用程序
  • 手写ES6 Promise() 相关函数
  • 怎么把https://github.com项目拉到自己的github