自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 SOC-ESP32S3部分:QA-关于唤醒词更改及配置操作步骤

对于AI语音类项目,乐鑫官方提供一些免费开放的唤醒词(26个左右)修改支持,但需要在安装配置 ESP IDF开发环境下进行配置,且能够正常编译xiaozhi-esp32源代码的环境下进行。唤醒词修改配置后需要保存退出,先按 键盘【S】出现如下图示界面,再按 Enter 回车 Save 保存,蓝色提示层消失,最后按键盘 【Q】 或 Esc 退出配置界面。**注意:ESP-IDF 环境支持是修改唤醒词前提条件,如果没有配置好IDF开发环境的,请先到乐鑫官网了解相关配置说明,此处从略。

2025-06-09 23:33:48 302

原创 SOC-ESP32S3部分:36-适配自己的板卡

添加板卡实现xiaozhi_all_in_one_s3.cc文件xiaozhi-esp32/main/boards/xiaozhi-all-in-one-s3/xiaozhi_all_in_one_s3.cc。在xiaozhi-all-in-one-s3文件夹中创建config.h文件xiaozhi-esp32/main/boards/xiaozhi-all-in-one-s3/config.h。如果你自己画了PCB板,需要把自己绘制的板卡配置小智AI工程,可以参考此文档。最后按说明书进行配置编译即可。

2025-06-08 23:49:03 470

原创 SOC-ESP32S3部分​​​​​​​:35-自定义AI应用形象

在xiaozhi-esp32/main/boards/xiaozhi-all-in-one-s3路径下,新建自己的表情文件,并把表情图复制到当前路径。修改xiaozhi-esp32/main/CMakeLists.txt文件,修改表情文件改为自己自定义的表情文件名。基于豆包:https://www.doubao.com/chat/基于:https://jimeng.jianying.com/如果你希望定制自己的IP,可以参考飞书文档中的视频。配置网址:https://xiaozhi.me/

2025-06-08 23:43:49 259

原创 SOC-ESP32S3部分:34-xiaozhi-esp32实现源码分析

当前有了WiFi和4G两个类,那我们就可以根据自己的板卡类型,继承对应类实现我们板卡具体外设了,例如多合一板卡,使用的Code是ES8311,屏幕是ST7789,分辨率是172*320,我们就可以创建XiaozhiAioS3类继承WifiBoard,然后初始化对应模块的驱动即可。具体使用哪个板卡类创建对象呢?boards文件夹中,包含了所有已经适配过的板卡,因为每个板卡的外设、IO、资源不一样,所以和板卡有关的模块都可以放在此文件夹中进行初始化。它接收音频数据,对其进行处理,并将处理后的音频数据输出。

2025-06-08 00:37:22 545

原创 SOC-ESP32S3部分:33-声学前端模型ESP-SR

WakeNet 是一个基于神经网络,为低功耗嵌入式 MCU 设计的唤醒词模型,目前支持 5 个以内的唤醒词识别,对于需要支持唤醒词功能的应用,我们可以把经过AFE算法处理的音频输入给WakeNet模型,得到唤醒状态,模型支持的音频格式如下:输入的音频文件采样率为 16 KHz,单声道,编码方式为 signed 16-bit。由于语音交互类设备需要保证能够采集干净的音频,所以在读取麦克风的音频后,需要进行一系列的算法处理,例如AEC、NS、BSS、MISO、VAD、AGC等。新建工程,添加sr组件。

2025-06-07 23:53:01 1109

原创 SOC-ESP32S3部分:32-LVGL显示框架

关于LVGL的使用,在IDF的例程中也是有提供的esp-idf/examples/peripherals/lcd/spi_lcd_touch,我们可以借鉴此工程,实现对应屏幕的LVGL移植,其实LVGL部分都是一样的,根据不同屏幕修改屏幕外设初始化部分即可。课程板卡使用的屏幕是SPI接口的,分辨率是172*320,驱动芯片是st7789,然后对应的IO可以回到上节课了解。IDF对于LVGL的支持一直有更新的,我们可以很方便在组件库中搜索到对应版本的LVGL,并把它添加到工程中。

2025-06-06 23:44:36 690

原创 SOC-ESP32S3部分:31-ESP-LCD控制器库

第二种是推荐大家用的,把驱动按esp_lcd框架的方式封装,找接近的芯片,更改部分参数即可,例如找不到ST7789的,我们可以找ST77916的,一般同一个厂家一系列的芯片,差异点只在初始化参数的不同。第一种是比较传统的,是把厂家提供的驱动文件,修改为ESP32的接口,例如SPI、IO相关的函数,这部分可以参考我们SPI课程中,使用SPI适配的ST7789屏幕驱动。使用绘制函数绘制图像esp_lcd_panel_draw_bitmap。这些驱动都是适配了esp_lcd控制器的,使用起来非常方便。

2025-06-06 23:38:27 602

原创 SOC-ESP32S3部分:30-I2S音频-麦克风&扬声器驱动

ES8311支持以下四种数据格式, 标准I2S(Philips格式),左对齐,右对齐,PCM格式,这些模式可以通过芯片的I2C接口进行配置,如果我们配置为 标准I2S(Philips格式),那ESP32端也配置为对应角色。如果我们接的是ES8311这颗Codec芯片,这颗芯片支持一路ADC模拟MIC输入,一路DAC,可以理解为把上方的NS4168集成一起了,这颗芯片是支持I2S模式的,这时候我们就选择标准I2S模式。这部分的功能不需要底板了,我们可以把核心板拆下来,接上喇叭,仅用USB供电即可。

2025-06-04 21:10:32 1141

原创 SOC-ESP32S3部分​​​​​​​:29-乐鑫组件库的使用

在组件的详情文档中,一般有对应的例子和文档,给你介绍该组件如何使用,可以自行参考,由于组件更新时,文档有可能维护不及时,更好的是打开下载组件的例程参考,例程位于managed_components/espressif__button/examples。)是乐鑫科技为开发者提供的一个开源组件管理平台,旨在帮助开发者快速集成和使用乐鑫及其社区提供的各种功能模块和驱动程序。每个组件都有明确的版本号,开发者可以选择特定版本的组件,确保项目的稳定性和兼容性5。确保你的组件代码是模块化的,并且能够独立运行。

2025-06-04 20:59:23 556

原创 SOC-ESP32S3部分:28-BLE低功耗蓝牙

下方栏目表示从设备支持3个服务,其中前面0x1800、0x1801是蓝牙联盟定义的,后面的0x00FF是自定义的,显示Unknown Service,因为是我们自定义的,第三方的APP不知道具体的服务名称,如果是我们自己开发的APP,我们可以查询到0x00FF后,在界面上显示,这是一个灯服务。同理,如果设备中有一些特征是可读可写的,我们也可以自定义一个可读写特征,例如前面灯的开关,我们可以通过写属性控制灯的亮灭,也可以通过读属性读取当前灯的亮灭状态,所以灯的开关更准确来说应该是一个可读写的特征。

2025-06-03 23:53:27 793

原创 SOC-ESP32S3部分:27-设备OTA

修改完成后,重新编译,代码会先进行配网操作,注意,配置的网络需要和你的电脑运行的服务器连接到同一个网络,保证网段是一样的,例如都是192.168.3.xx,配网完网络后,设备连接路由后会开启OTA,OTA结束后,重启日志如下。我们可以使用openssl生成一个自己的证书,这里面需要自行安装openssl工具,如果不想自己安装,也可以直接使用文档提供的证书,在实际开发中,这部分证书是由服务器同事进行管理的。因为OTA分区表的分区如下,是大于默认工程设置的2M Flash大小的。

2025-06-03 23:25:27 838

原创 SOC-ESP32S3部分:26-物联网MQTT连云

例如下方代码实现了连接MQTT服务器mqtt://mqtt.eclipseprojects.io,在接收到连接成功MQTT_EVENT_CONNECTED回调后发布一条消息到主题/topic/qos1,订阅两个主题/topic/qos0和/topic/qos1。ESP-MQTT 是 MQTT 协议客户端的实现,MQTT 是一种基于发布/订阅模式的轻量级消息传输协议。参考:https://developer.tuya.com/cn/docs/iot/Protocol-Access?

2025-06-02 19:20:29 1289 1

原创 SOC-ESP32S3部分:25-HTTP请求

只需要把esp_http_client_config_t的method设置为HTTP_METHOD_POST,另外安装服务器的参数,填写esp_http_client_set_header和esp_http_client_set_post_field即可。其中 GET 方式仅仅为获取服务器资源,方式较为简单,因此在请求方式为 GET 的 HTTP 请求数据中,请求正文部分可以省略,直接将想要获取的资源添加到 URL 中。发送一次GET请求,请求发送给http://www.example.com/服务器。

2025-06-02 19:14:53 934

原创 SOC-ESP32S3部分:24-WiFi配网

上述代码,每次启动后,不管之前有没有配置过,都会进入配网模式,不符合实际的应用,这里对代码进行修改,使配网的信息(帐号和密码)被保存在 NVS 中,每次配网之前读取NVS中的信息,如果未配网过,则进行配网操作,如果已经配网过,则直接连接路由器,只需要修改smartconfig_example_task函数即可。这就需要用到WiFi配网的功能。但是相对来说,方法三对用户的体验是较好的,产品化时,一般会考虑同时实现多种配网模式,这里我们主要讲解下方法三,其它方法的流程都是类似的,就是获取信息的管道有差异而已。

2025-06-01 19:24:47 704

原创 SOC-ESP32S3部分:23-文件系统

通过设置这些参数,可以控制 SPIFFS 文件系统的挂载行为、分区选择、最大同时打开的文件数以及挂载失败时的处理方式。spiffs_create_partition_image 是一个用于将文件系统中的文件打包成 SPIFFS 镜像并烧录到 ESP32 Flash中的命令,可以在程序烧录阶段一同将自定义的SPIFFS 文件镜像烧录到开发板。NVS 可以存储一些 PHY 初始化数据,也可以存储其他数据,一些断电存储的数据建议放在这里。同理,因为文件系统需要用到Flash存储,所以也得进行分区表的创建。

2025-06-01 19:15:56 915

原创 SOC-ESP32S3部分:22-分区表

在这里可以看到,只用了1M多的空间,而我们板卡Flash一般是16M的,所以,我们可以根据实际应用需求修改大小,如果我们需要修改不同分区的大小,应该如何修改呢?无论是前面我们说到的NVS,还是后面用到的文件系统,他们都必须有存储的载体,例如NVS,我们说过它是存储在Flash中的,那具体是Flash的哪个位置呢?编译烧录后,我们会发现,效果和原来的是一样的,只不过现在存储到,user_nvs分区中。接着,我们就可以修改原来nvs的代码,让它使用我们创建的分区进行存储。我们可以参考上述分区表的格式,添加。

2025-05-31 23:35:36 1107

原创 SOC-ESP32S3部分:21-非易失性存储库

NVS 是 ESP32 flash(flash就是板子上的一个存储芯片)中的一个存储分区,我们可以在其中存储键值对(key-value pairs)。因此,每次在NVS中设置键值对后,都应该调用nvs_commit()函数,以确保这些更改在设备重启后仍然存在。当你在NVS中设置一个键值对后,这个更改首先被存储在内存中。在这个例子中,我们首先打开了一个名为 “storage” 的 NVS 名称空间,然后在其中存储了一个键名为 “restart_counter”、值为1的键值对。三个函数来存储数据。

2025-05-31 23:32:08 453

原创 SOC-ESP32S3部分:20-SPI&SPI屏幕驱动

结构体用于配置和描述一次 SPI 传输的详细参数。通过设置这些参数,可以精确控制 SPI 传输的各个阶段,包括命令、地址、数据的发送和接收。这部分代码只是参考,不能在板卡上面跑哦,需要在板卡上面运行的,可以看下方的SPI屏幕驱动部分。函数用于初始化指定的 SPI 主机设备,并根据提供的配置信息设置 SPI 总线的参数。ESP32 IDF库的SPI主设备驱动程序的API使用流程大致如下。函数用于将一个新的 SPI 设备添加到指定的 SPI 主机上。字段用于设置各种标志位,以控制 SPI 传输的详细行为。

2025-05-30 20:45:10 850

原创 SOC-ESP32S3部分:19-ADC模数转换

SAR ADC 管脚通过 IO MUX 与 GPIO1 ~ GPIO20、RTC_GPIO1 ~ RTC_GPIO20、触摸传感器接口、UART 接口、SPI 接口、以及 USB_D- 和 USB_D+ 管脚复用。为了让采集的数据更准确,我们可以使用官方提供的校准算法,ESP-IDF 提供的 ADC 校准方案基于芯片上某些与 ADC 校准相关的 eFuse 位的值。adc_oneshot_unit_init_cfg_t用于配置 ADC(模数转换器)的单次采样模式。创建 ADC 单元实例后,通过。

2025-05-30 20:39:15 744

原创 SOC-ESP32S3部分:18-串口

调用函数uart_set_pin,指定配置 Tx、Rx、RTS 和 CTS 信号的 GPIO 管脚编号。在ESP32S3中,串口IO可以通过软件配置到指定IO上,这使得我们在设计硬件电路时,非常灵活。如果你不希望这个串口打印日志信息,那你可以绑定GPIO_NUM_43和GPIO_NUM_44到其它串口,例如UART_NUM_1上。串口参数配置一般有两种方式,使用结构体一次性配置所有参数,或者使用API函数,逐个设置,可以根据具体情况灵活使用。运行后,打开串口调试软件就可以接收到来自板卡的数据。

2025-05-29 23:34:54 600

原创 SOC-ESP32S3部分:17-I2C驱动实例-EEPROM&温湿度传感器

我们学习基础课程时,知道底板上是有EEPROM的,就是BL24c02,这里我们不再重新讲解EEPROM的协议时序,如果你不清楚,可以回到51&STM32单片机课程进行了解,我们直接看实现。EEPROM读取数据时,需要先写入需要读取数据的地址,然后再进行读取,使用先发送再读取函数i2c_master_transmit_receive。特别说明,目前ESP32S3由于IO数量少的原因,是没有连接底板的EEPROM的,我们这里只进行代码讲解,这个工程不能在板卡运行的。

2025-05-29 23:31:00 420

原创 SOC-ESP32S3部分:16-I2C

通过调用 i2c_new_master_bus和i2c_master_bus_add_device安装好 I2C 主机控制器驱动程序后,ESP32-S3 就可以与其他 I2C 设备进行通信了。从一些 I2C 设备中读取数据之前需要进行写入配置,可通过 i2c_master_transmit_receive接口进行配置。将一个 I2C 设备添加到已创建的 I2C 总线上,该函数配置指定地址的 I2C 从设备,并返回一个设备句柄,以便后续对该设备进行读写操作。主机向从机设备写入并从从机设备读取数据。

2025-05-27 21:01:50 1033

原创 SOC-ESP32S3部分​​​​​​​:15-PWM脉冲宽度调制

ESP32-S3 提供了LED PWM 控制器,简写为LEDC,用于生成控制LED 的脉冲宽度调制信号,这里仅仅是命名的区别,其实控制LEDC就是通用的PWM控制器。ESP32-S3的SW_PWM功能允许我们通过软件来控制PWM,而不需要额外的硬件。通过改变脉冲的宽度,我们可以控制电源的输出,从而控制例如LED的亮度或电机的速度。ledc_channel_config_t用于配置 LEDC PWM 通道,并将其应用到指定的 GPIO 引脚。是用于设置和更新 LEDC 通道占空比的两个关键函数。

2025-05-27 20:57:00 494

原创 SOC-ESP32S3部分:13-定时器

示例开始时创建并启动一个周期性和一个一次性定时器,回调函数打印自启动以来经过的时间,一次性定时器的回调函数会重新定义周期性定时器的周期并重启它,之后芯片进入浅睡眠,唤醒后定时器再执行一些回调函数,最后停止并删除定时器以释放内存。API文档位于https://docs.espressif.com/projects/esp-idf/zh_CN/v5.4/esp32s3/api-reference/system/esp_timer.html。ESP_Timer定时器创建esp_timer_create。

2025-05-26 18:26:40 940

原创 SOC-ESP32S3部分:14-错误处理

为了让我们编写的代码更健壮,我们可以给所有带返回状态的函数添加错误处理代码,一旦某些资源初始化失败,可以马上终止程序,避免运行异常,触发不确定的问题。这个错误处理代码就是使用IDF提供的ESP_ERROR_CHECK宏定义。定时器代码添加错误处理参考。

2025-05-26 18:21:51 225

原创 SOC-ESP32S3部分:12-2、编码器驱动

可以从图中可以看出当从CW方向转动的时候,A的波形上升沿比B波形的上升沿快,具体快多少,这里数据手册给出24±3°,当从CCW方向转动的这个时候恰好相反,B的相位上升沿快于A的上升沿。编码器的驱动比较简单,我们在基础课程已经有学习过编码器的原理,我们这里就不重复讲解原理了,大家可以跳转32部分课程了解下原理,这里主要给大家演示下ESP32S3结合IO中断、消息队列实现的编码器方向和按下事件。编码器有四根线,A\B是编码输出,S是按钮状态,C是公共端。首先我们查看原理图,了解编码器的接线如下。

2025-05-25 19:15:24 328

原创 SOC-ESP32S3部分:12-1、任务通信-队列

以往我们大循环中两个模块进行通信,或者中断和大循环通信,很多时候都用一个全局变量标志位的方式进行,在学习单片机部分串口通信时,我们也使用过队列的方式进行,但是都是需要我们自己编写代码实现,像我们前面说到,按键中断触发后,不应该在中断内部打印,需要把触发的事件发出来,然后在任务中进行处理,这里我们就可以使用队列进行通信。而IDF集成了FreeRTOS后,我们就可以直接使用FreeRTOS的队列功能,来实现任务与任务,中断与任务的通信。例如,创建一个队列,然后在任务1中间隔1s发送消息,任务2中接收消息。

2025-05-25 19:13:15 265

原创 SOC-ESP32S3部分:11-任务创建

在我们学习单片机的时候,main函数入口中一般有一个while大循环在不停轮询,如果我们需要实现多种不同的业务,就需要用到状态机,根据不同时刻的要求执行不同的代码,虽然可以实现需求,但这种情况下代码是比较臃肿的。但是需要注意的是,IDF的例程中,是不会单独对FreeRTOS通用的任务创建、任务通信等RTOS相关特性进行讲解,这部分我们可以参考FreeRTOS官方文档或者IDF API文档进行了解。IDF默认是集成了实时操作系统FreeRTOS的,所以FreeRTOS相关接口我们都是可以用的。

2025-05-24 22:57:20 841

原创 SOC-ESP32S3部分:10-GPIO中断&按键中断实现

因为中断中不能执行耗时操作,而打印函数就是耗时操作,更加规范的做法是,在中断回调函数中发送消息,在外部任务中进行处理,这也是我们接下来两节课要讲解的多任务和消息队列。我们看到官方例程中,添加了一个关键词IRAM_ATTR,IRAM_ATTR 表示该函数将被放置在内部高速 RAM(IRAM)中执行,以提高中断处理的速度。这里我们需要注册一个回调函数,一旦触发中断,系统就会运行这个函数的代码,学习了GPIO输入和输出功能后,参考示例工程,我们再来看看GPIO中断,IO中断的配置分为三步。

2025-05-24 22:54:17 635

原创 SOC-ESP32S3部分:9-GPIO输入&按键状态读取

这部分和GPIO输出的配置比较类似,GPIO的输入配置和输出配置,用的都是一个函数gpio_config,我们只需要把参数中的mode设置为输入模式即可。这里我们使用按键作为GPIO输入例程讲解,先查看原理图,找到按键连接的GPIO,如下图所示,板卡的GPIO42连接到按键。前面我们学习了GPIO的输出,GPIO输入部分其实也是一样的,这里我们使用按键作为GPIO输入例程讲解,分三步走。然后按下按键,可以看到打印level:0,松开按键打印level:1。

2025-05-23 19:48:37 404

原创 SOC-ESP32S3部分:8-GPIO输出&LED控制

GPIO例程的源码文件在esp-idf/examples/peripherals/gpio/generic_gpio/main/gpio_example_main.c中,IO口的选择通过Kconfig进行配置esp-idf/examples/peripherals/gpio/generic_gpio/main/Kconfig.projbuild。例如,这节课我们的需求是,需要通过GPIO控制指示灯的亮灭,也就是需要使用GPIO的输出控制功能,那如何了解GPIO的输出功能呢?

2025-05-23 19:46:17 832

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

通过前面几章的学习,我想大家都感觉到了,ESP32的开发和普通单片机开发还是有一定差异的,我们在学习51时主要学习的是寄存器的开发,学习STM32时,主要学习的是各类芯片资源、外设的库函数开发,而学习ESP32时,除了基础芯片资源、外设,还有各类WiFi、蓝牙、网络、安全、系统、音频等等模块。ESP32的资源非常多,大模块包含蓝牙、WiFi、系统、外设、存储、安全、配网联网等等,每个大模块又包含非常多的小模块,对于这类芯片的应用,我们不可能像学习基础教程一样,逐个模块进行讲解,那样可能几百节课程都讲不完。

2025-05-22 22:41:09 598

原创 SOC-ESP32S3部分:6-任务看门狗

ESP32-S3的任务看门狗功能是一个重要的系统保护机制,它可以确保在程序发生异常(如进入死循环或跑飞)时,系统能够自动重启,以保障系统的稳定运行。工具或者搜索引擎,也可以快速定位问题,不要看到一大串英文就慌,其实英文越多这个错误就越具体,只需要仔细查看错误的描述即可。在这里,我们可以知道默认情况下TWDT是开启的,间隔时间默认是5s,这个点,我们在menuconfig中也是可以看到的。的错误日志是非常完善的,看错误日志就可以判断出是哪里出现了问题,如果我们看不懂,我们可以把日志贴给。

2025-05-22 22:38:11 1016

原创 SOC-ESP32S3部分:5-IDF的日志管理

也就是说我们可以配置CONFIG_LOG_DEFAULT_LEVEL这个宏来决定打印日志的类型,等于或小于这个宏值能打印,高的不能打印,在sdkconfig文件中可以看到CONFIG_LOG_DEFAULT_LEVEL默认为3,所以ESP_LOG_ERROR、ESP_LOG_WARN、ESP_LOG_INFO都可以打印。但是企业中开发项目,其实要求我们可以更好管理日志,例如调试的日志在发布时不打印,例如应为每个模块设置不同的日志级别。如何使用idf的日志库呢?到这里,我们就可以看到所有的日志都打印出来了。

2025-05-21 15:57:09 547

原创 SOC-ESP32S3部分:4-参数配置可视化menuconfig

你可以把这里的配置比作Keil中的魔法棒窗口,可以配置各类编译参数、烧录参数,里面的内容非常多,但是这节课我们暂时不需要修改其中任何模块,我们只需要了解下这个窗口的操作按键即可。可以选择对应菜单,按Enter回车可以进入下一层,这里我们修改下信息,选择对应选项后,按Enter回车输入内容,然后按ESC退出,然后输入Y保存。接着,我们可以添加一点自己的配置,我们先按Esc按键退出,如果你已经修改了配置,这里会提问你是否保存,记得点击按键N即可。配置,如果没有编译所有模块,意味着你是没有修改到。

2025-05-21 15:54:11 735

原创 SOC-ESP32S3部分:3-参考helloworld动手新建自己的最小工程

编译后,你可以看到工程中多了个build文件夹,这就是我们编译配置产生的结果文件,还多了个sdkconfig文件,这个是我们执行idf.py set-target esp32s3 产生的,针对特定芯片生成的文件,都是过程文件。main.c为工程入口源码,我们简单看看每句代码的含义,这里需要特别说明的是,IDF是默认适配了FreeRTOS的,所以我们可以直接使用FreeRTOS相关的功能,比如多任务、队列、通知等等。至此,我们已经自己独立搭建了一个最小的工程,后续创建其它工程,操作都是一样的。

2025-05-20 15:11:02 459

原创 SOC-ESP32S3部分:2-2-VSCode进行编译&烧录

无论是使用Window搭建IDF开发环境,还是使用Linux Ubuntu搭建IDF开发环境,我们都建议使用VSCode进行代码编写和编译,VSCode界面友好,支持各类免费的插件,可以大大加速我们开发,接下来,我们看看如何使用VScode进行工程编译烧录。我们可以看到VSCode的底部出现了一个powershell的终端,这就是使用VSCode的好处,编辑源码,编译,烧录都可以在一个IDE完成,这样,我们就不用手动另外在打开powershell啦。然后,我们执行脚本配置下IDF的环境变量。

2025-05-20 15:03:26 902

原创 SOC-ESP32S3部分:2-1-编译烧录第一个工程

在IDF中其实给我们提供了非常多的例程,我们开发时一般也是参考其中的例程进行开发,在这里,我们参考官方提供的hello_world工程,带大家了解下idf工程如何编译和烧录。第一个工程是学习后续课程的基础,因为不同电脑环境差异较大,你在做实验的过程中可能会遇到各类奇怪的问题,课程很难遍历出所有可能出现的问题,建议你多结合。指令,非常简单,这些指令可以大大加速我们开发速度,虽然是Linux命令,在Window Power shell中也是可以使用的。接着把板卡通过TypeC线接到电脑,然后就可以执行烧录。

2025-05-19 11:36:31 800

原创 SOC-ESP32S3部分:1、ESP32开发IDF-5.4环境搭建

在以前,ESP32开发环境的搭建是一件极其痛苦的事情,因为乐鑫之前只支持Linux的开发方式,安装的开发环境很多插件都在Github上,而很多包又特别大,国内访问Github本身就比较麻烦,这类特别大的包,网络一旦不稳定,很容易下载失败,搭建个环境可能需要一到两天。注意,使用Linux环境搭建,需要有Linux相关命令行使用经验,小白用户建议用Window环境搭建,如果要用Linux,先学习下Linux相关知识,建议看书籍:鸟哥的 Linux 私房菜。,建议上魔法多尝试,出现问题时自行搜索相关教程安装。

2025-05-19 11:33:03 614

原创 SOC-ESP32S3部分:0、什么是ESP32

完善的安全机制使芯片能够满足严格的安全要求。但准确点来说,ESP32其实不是一款芯片,而是一个系列的芯片,这个和STM32有点类型,STM32有L系列、F系列、H系列,ESP32也有不同的系列。• 支持 SPI 协议:SPI、Dual SPI、Quad SPI、Octal SPI、QPI、OPI,可外接 flash、片外 RAM 和其他 SPI 设备。很多不同的模组公司基于乐鑫的芯片,把他封装为不同形态的模组,当然,乐鑫也做ESP32的模组,所以他们的形态各异,但是把壳子扣掉后,里面都是ESP32核心。

2025-05-18 11:01:43 831

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除