ESP-C3入门1. VSCode+IDF 开发环境

Posted 编程圈子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP-C3入门1. VSCode+IDF 开发环境相关的知识,希望对你有一定的参考价值。

ESP-C3入门1. VSCode+IDF 开发环境

一、芯片说明

本文使用ESP-C3-MINI-1芯片,它是一款通用型 Wi-Fi 和低功耗蓝牙 (Bluetooth LE) 模组。
技术规格书地址

1. 主要参数

  • 内置ESP32-C3FH4或ESP32-C3FN4芯片,RISC-V 32位单核微处理器,主频最高160MHz
  • 384K ROM
  • 400K SRAM,其中16K用于cache
  • 8K RTC SRAM
  • 4M 合封flash
  • 外设接口:GPIO, I2C, I2S, SPI, UART
  • 电压:3-3.6V
  • WIFI:WiFi - 802.11,802.11 b/g/n
  • 支付低功耗蓝牙(BluetoothLE):Bluetooth5,Bluetooth mesh
  • 蓝牙速率支持125K/500K/1M/2M bps
  • WiFi与蓝牙共用同一个天线

2. 内部结构图

ESP32-C3-MINI-1内部架构图:

ESP32-C3-MINI-1U内部架构图:

3. 引脚

4. 引脚描述

名称序号类型功能
GND1,2,11,14,36-53P接地
3V33P供电
NC4,7,9,10,15,17,24,25,28,29,32,35-
IO25I/O/TGPIO2,ADC1_CH2,FSPIQ
IO36I/O/TGPIO3, ADC1_CH3
EN8I高电平:芯片使能;低电平:芯片关闭 注意不能让EN浮空
IO012I/O/TI GPIO0, ADC1_CH0, XTAL_32K_P
IO113I/O/TI GPIO1, ADC1_CH1, XTAL_32K_N
IO1016I/O/TGPIO10, FSPICS0
IO418I/O/TGPIO4, ADC1_CH4, FSPIHD, MTMS
IO519I/O/TGPIO5, ADC2_CH0, FSPIWP, MTDI
IO620I/O/TGPIO6, FSPICLK, MTCK
IO721I/O/TGPIO7, FSPID, MTDO
IO822I/O/TGPIO8
IO923I/O/TGPIO9
IO1826I/O/TGPIO18, USB_DIO19 27 I/O/T GPIO19, USB_D+
IRXD030I/O/TGPIO20, U0RXD
ITXD031I/O/TGPIO21, U0TXD

5. strapping管脚

ESP32-C3系列芯片共有3个Strapping管脚 :

  • GPIO2
  • GPIO8
  • GPIO9
    软件可以读取GPIO_STRAP_REG寄存器的GPIO_STRAPPING字段 、 获取GPIO2、GPIO8和GPIO9的值。

6. 系统复位

  • 上电复位
  • RTC看门狗复位
  • 欠压复位
  • 模拟超级看门狗复位
  • 晶振时钟毛刺检测复位

二、idf-vscode开发环境搭建

1. 安装vscode

过程省略。

2. idf配置

(1) 下载idf安装器

https://dl.espressif.com/dl/esp-idf/?idf=4.3


这里下载v4.4.3 离线安装版本。
运行安装下载的程序。安装时可能会看到提示:

按提示在按windows+r ,跳出运行窗口,执行命令:

powershell -Command "& Start-Process -FilePath reg 'ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f' -Verb runAs"

点击“应用修复”:

修复完成后点击“下一步”,按提示完成安装步骤。

最后勾选 运行 ERP-IDF命令提示符环境,点击完成。

3. 给vscode安装esp-idf插件:

4. 配置esp-idf插件

点击菜单View-Command Palette,在弹出的串口输入 : esp-idf:con

选择其中的ESP-IDF:Configure ESP-IDF extension,


出现下面画面则安装成功:

如果遇到Python安装库报错,可以关闭vscode重新设置 。多次尝试仍不行,可以修改pip源,方法是:
到C:/用户/你的用户名下,新建 pip目录,添加 pip.ini文件 , 输入内容 :

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

然后再次尝试。

三、开发板原理图

我使用的开发板型号是 GOOUUU-ESP32-C3,上面接了一个RGB灯:


下面代码主要针对GPIO3,GPIO4,GPIO5口进行操作。

四、创建示例工程

1. 创建示例工程

点击菜单: View-Command Palette,输入ESP-IDF:Show Ex

这里选择 hello world 示例:

主要的源代码:

/* Hello World Example

   This example code is in the Public Domain (or CC0 licensed, at your option.)

   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"

void app_main(void)

    printf("Hello world!\\n");

    /* Print chip information */
    esp_chip_info_t chip_info;
    esp_chip_info(&chip_info);
    printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
            CONFIG_IDF_TARGET,
            chip_info.cores,
            (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
            (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");

    printf("silicon revision %d, ", chip_info.revision);

    printf("%dMB %s flash\\n", spi_flash_get_chip_size() / (1024 * 1024),
            (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");

    printf("Minimum free heap size: %d bytes\\n", esp_get_minimum_free_heap_size());

    for (int i = 10; i >= 0; i--) 
        printf("Restarting in %d seconds...\\n", i);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    
    printf("Restarting now.\\n");
    fflush(stdout);
    esp_restart();


点击Create Project using example hello_world,选择项目保存路径:

项目创建成功后,左侧可以看到项目文件列表:

2. 配置device

在命令栏输入esp-idf:set espressif,选择device target

这里选择第二项 via builtin USB-JTAG:

ESP-IDF Build projec,选择: UART

3. 编译

点击左下方的menuconfig,ESP-IDF Full Clean:

点击ESP-IDF Build project编译按钮:

4. 下载程序

设备插到电脑上,在这里选择连接的串口。

点击ESP-IDF flash device 下载程序到芯片:

点击:ESP-IDF Monitor device 查看串口输出:

最简单的GPIO操作示例代码:

#include "driver/gpio.h"

void app_main()
    gpio_reset_pin(3);
    gpio_reset_pin(4);
    gpio_reset_pin(5);
    gpio_set_direction(GPIO_NUM_3, GPIO_MODE_OUTPUT);
    gpio_set_direction(GPIO_NUM_4, GPIO_MODE_OUTPUT);
    gpio_set_direction(GPIO_NUM_5, GPIO_MODE_OUTPUT);
    
    //1为高电平,0为低电平
    gpio_set_level(GPIO_NUM_3,1);
    gpio_set_level(GPIO_NUM_4,0);
    gpio_set_level(GPIO_NUM_5,1);

修改3、4、5引脚值,可以看到RGB灯颜色发生变化。

以上是关于ESP-C3入门1. VSCode+IDF 开发环境的主要内容,如果未能解决你的问题,请参考以下文章

ESP-C3入门2. Clion+IDF 开发环境搭建

ESP-C3入门2. Clion+IDF 开发环境搭建

ESP-C3入门2. Clion+IDF 开发环境搭建

ESP-C3入门3. 基于IDF的GPIO基本操作

ESP-C3入门2. 基于IDF的GPIO基本操作

ESP-C3入门9. 创建TCP Server