赞
踩
陈拓 2023/10/21-2023/10/21
Wokwi是一个在线的电子电路仿真器。你可以使用它来仿真Arduino、ESP32、STM32和许多其他流行的电路板、元器件以及传感器,免去使用开发板。
Wokwi提供基于浏览器的界面,您可以通过这种简单直观的方式快速开发一个项目。但是对于ESP32来说在浏览器中直接编程的开发模式目前只能用于Arduino架构。
《在Espressif-IDE中使用Wokwi仿真ESP32》
https://blog.csdn.net/chentuo2000/article/details/133935234?spm=1001.2014.3001.5501
一文中我们讲述了在在Espressif-IDE中使用Wokwi仿真ESP32的方法。
在本文中我们讲述直接用Wokwi在线模拟器仿真任何ESP-IDF开发环境构建的项目。
https://wokwi.com/
选择ESP32。
左边是arduino的程序代码编写区。右边是电路连接和仿真区。
LED正极通过电阻连接ESP32的D25引脚,LED负极接GND引脚:
你可以选择不同的环境开发ESP32应用程序:
参考《Windows系统安装ESP32 ESP-IDF开发环境》
https://blog.csdn.net/chentuo2000/article/details/133922505?spm=1001.2014.3001.5501
参考《VSCode搭建ESP32 ESP-IDF开发环境-Windows》
https://blog.csdn.net/chentuo2000/article/details/133925665?spm=1001.2014.3001.5501
参考《ESP32集成开发环境Espressif-IDE安装 – Windows》
https://blog.csdn.net/chentuo2000/article/details/133931499?spm=1001.2014.3001.5501
不论你用什么环境开发最终会生成ESP32运行所需的3个bin文件:
我们以ESP-IDF 5.0为例。
对于简单的项目使用命令行开发更为方便。
mkdir esp
进入esp
xcopy D:\Espressif\frameworks\esp-idf-v5.0.2\examples\get-started\hello_world\ F:\esp\led_blink\ /E
cd led_blink
针对Wokwi仿真器中的电路修改main文件夹下的hello_world_main.c
- #include <stdio.h>
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "esp_system.h"
- #include "driver/gpio.h"
-
- #define GPIO_OUTPUT_IO_LED 25 // led在gpio引脚25
-
- void led_init(void)
- {
- //定义一个gpio_config类型的结构体,下面的都算对其进行的配置
- gpio_config_t io_conf;
- //禁用中断
- io_conf.intr_type = GPIO_INTR_DISABLE;
- //设置为输出模式
- io_conf.mode = GPIO_MODE_OUTPUT;
- //你想设置的引脚
- io_conf.pin_bit_mask = (1<<GPIO_OUTPUT_IO_LED);
- //关闭下拉模式
- io_conf.pull_down_en = 0;
- //禁用牵引模式
- io_conf.pull_up_en = 0;
- //配置GPIO与给定的设置。
- gpio_config(&io_conf);
- }
-
- void led_on(void) {
- gpio_set_level(GPIO_OUTPUT_IO_LED, 1);
- }
-
- void led_off(void) {
- gpio_set_level(GPIO_OUTPUT_IO_LED, 0);
- }
-
- void app_main(void)
- {
- printf("Hello world!\n");
- led_init(); // 初始化led
-
- for (int i = 255; i >= 0; i--) {
- led_on();
- vTaskDelay(500 / portTICK_PERIOD_MS);
- led_off();
- vTaskDelay(500 / portTICK_PERIOD_MS);
- }
- }
idf.py set-target esp32
idf.py menuconfig
1) 将闪存设置为4MB
保存,退出。
idf.py build
生成3个bin文件:
1) 应用程序:
F:\esp\led_blink\build\hello_world.bin
2) 引导加载程序:
F:\esp\led_blink\build\bootloader\bootloader.bin
3) 分区表:
F:\esp\led_blink\build\partition_table\partition-table.bin
对于简单的项目可以直接使用应用程序bin文件仿真。
选择Upload Firmware and Start Simulation…
开始仿真
有关Wokwi模拟器的中文说明见:
https://docs.wokwi.com/zh-CN/
对于复杂项目通常需要重写分区表,这时我们就需要将引导加载程序、应用程序和分区表打包到一个bin文件中,可以使用ESP-IDF的idf.py uf2命令生成UF2为文件。
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/tools/idf-py.html
idf.py uf2
和前面直接用应用程序bin文件仿真方法相同,只要选择uf2.bin文件即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。