banner
banner
banner
banner
NEWS LETTER

【棉花糖】2-ESP32初始化

Scroll down
  • 本篇文章使用说明:
    该部分内容操作,适合二年级以上的小朋友(或者已经会打键盘,有良好识字量的小朋友),鼻鼻现在刚刚6岁整,很多字不认识,还不会敲键盘,所以渡渡代劳了,以口述的方式讲解给鼻鼻。
  • 本篇文章使用小结:
    sss

1. 系统环境说明

  • [ ]待补充

2. 系统环境搭建&HelloWorld

由于渡渡也是个嵌入式小白,需要和鼻鼻一起从0开始探索,
哈哈((^∀^*)),尽管鼻鼻刚刚过了6岁生日🎂,在独立学习人工智能🤖方面,目前还不能理解视频的全部内容,还处于需要妈妈喂的宝宝阶段👼
因此我为自己找了一个非常好的入门教学视频,对0基础小白非常合适,对三年级的小朋友也非常友好呢!

需要的同学可以参考: 2024最新版 ESP32教程(基于ESP-IDF)
在这里特别感谢哔哩哔哩Up主: 宸芯IOT

小插曲】:因为工作电脑和家里电脑不是一台,且为mac电脑,因此我优先选择了阿里云的ECS服务器,但是到烧录的时候才发现,无法实现远程烧录。因此如下操作,请各位小伙伴按上面视频老师的建议进行操作。当然,Windows也很合适,请各位自行寻找方案;我后续会直接使用的mac系统。

  1. 升级Ubuntu工具包,仅限Ubuntu 20.04系统使用

    1
    sudo apt update` 

    image

  2. 安装各种必要的工具,仅限Ubuntu 20.04系统使用

    1
    sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools

    image

以下所有系统均可使用:

  1. 新建棉花糖目录,并拉取gitee工具

    1
    2
    3
    mkdir mht
    cd mht
    git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

    image

  2. 执行gitee工具切换镜像脚本

    1
    2
    cd esp-gitee-tools
    ./jihu-mirror.sh set

    image

  3. 拉取esp-idf源码

    1
    2
    cd ..
    git clone --recursive https://github.com/espressif/esp-idf.git

    imageimage

  4. 切换esp-idf版本分支到v5.2

    1
    2
    3
    4
    5
    cd esp-idf
    git checkout v5.2
    git submodule update --init --recursive
    # 如果提示失败或有错误试下这句:
    # ../esp-gitee-tools/submodule-update.sh

    imageimage

  5. 更换pip源,安装编辑工具

    1
    2
    3
    pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
    pip config set global.trusted-host mirrors.aliyun.com
    ../esp-gitee-tools/install.sh

    image image

  6. 配置esp-idf环境变量

    1
    2
    3
    # 设置环境变量并将环境变量放到.bashrc中
    source export.sh
    echo "source ~/mht/esp-idf/export.sh" >> ~/.bashrc

    image

  7. 测试一下环境是否OK

    1
    2
    3
    # 下载课程配套源码
    cd ~/mht
    git clone --recursive https://gitee.com/vi-iot/esp32-board.git

    image

    1
    2
    3
    # 编译
    cd esp32-board/helloworld
    idf.py build

    image image

    1
    2
    # 烧写(建议切换为本地烧录,远程烧录会更复杂,初学者不建议远程烧录)
    idf.py flash

    image image

    1
    2
    # 观测(我买的板子是ESP32-WROOM-32版本,因为不支持PRSAM,修改请参考第8步)
    idf.py monitor

    image

  8. 因为ESP32-WROOM-32不支持PRSAM,烧录有监控会发现错误:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:2
    load:0x3fff0030,len:7172
    load:0x40078000,len:15532
    load:0x40080400,len:4
    .--- 0x40080400: _init at ??:?

    load:0x40080404,len:3904
    entry 0x40080640
    I (29) boot: ESP-IDF v5.2 2nd stage bootloader
    I (29) boot: compile time Dec 4 2024 13:23:34
    I (29) boot: Multicore bootloader
    I (33) boot: chip revision: v3.1
    I (37) boot.esp32: SPI Speed : 40MHz
    I (42) boot.esp32: SPI Mode : DIO
    I (46) boot.esp32: SPI Flash Size : 2MB
    I (51) boot: Enabling RNG early entropy source...
    I (56) boot: Partition Table:
    I (60) boot: ## Label Usage Type ST Offset Length
    I (67) boot: 0 nvs WiFi data 01 02 00009000 00006000
    I (75) boot: 1 phy_init RF data 01 01 0000f000 00001000
    I (82) boot: 2 factory factory app 00 00 00010000 00100000
    I (90) boot: End of partition table
    I (94) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0d9f4h ( 55796) map
    I (121) esp_image: segment 1: paddr=0001da1c vaddr=3ffb0000 size=02280h ( 8832) load
    I (125) esp_image: segment 2: paddr=0001fca4 vaddr=40080000 size=00374h ( 884) load
    I (128) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=17130h ( 94512) map
    I (168) esp_image: segment 4: paddr=00037158 vaddr=40080374 size=0ffech ( 65516) load
    I (202) boot: Loaded app from partition at offset 0x10000
    I (202) boot: Disabling RNG early entropy source...
    I (213) cpu_start: Multicore app
    I (214) quad_psram: This chip is ESP32-D0WD
    E (216) quad_psram: PSRAM ID read error: 0xffffffff, PSRAM chip not found or not supported
    E (220) cpu_start: Failed to init external RAM!

    我也是一个硬件小白,这个时候AI是最好的老师,那就问AI吧:
    image image

    答案已经有了,那就开干(因为AI给的答案是参考答案,结合参考答案,需要自己根据实际情况进行调整):
    image image image image
    保温后,重新验证,就可以看到hello world!打印啦🎉🎉🎉

  9. 为了调试过程中,可以随时看ESP32的源码,我们可以加载进来。Windows小朋友,请看考视频,Mac小朋友,请参考下图:
    image
    点一下Add .vscode ....的信息,再看main.c中的.h文件,按住“Ctrl+要看的内容”,就可以跳转到对应的.h文件了。

2024-11-26 12:34:08 ~ 2024-12-08 11:38:40
其他文章
目录导航 置顶
  1. 1. 1. 系统环境说明
  2. 2. 2. 系统环境搭建&HelloWorld