学习
实践
活动
专区
工具
TVP
写文章
专栏首页嵌入式iotESP32-C3上手体验与​开发环境搭建

ESP32-C3上手体验与​开发环境搭建

ESP32-C3上手体验与开发环境搭建

  • 1.说明
  • 2.开发环境搭建
    • 2.1 下载ESP-IDF的环境
    • 2.2 编译代码
    • 2.3 程序烧录与验证
  • 3.ESP32-C3 LED分析
  • 4.使用WiFi功能
  • 5.小结

1.说明

ESP32-C3采用的是RISCV架构的芯片,目前又专注RISCV研究,所以特此来研究一下这个芯片的使用情况。

该芯片的主要特性如下:

  • 采用RSCV-V 32位的单核处理器,四级流水线架构,主频是160MHz。
  • 内置400KB SRAM,384KB ROM
  • 完善的Wi-Fi子系统
  • 低功耗蓝牙

外设支持方面

外设

备注

GPIO

x22

SPI

x3

UART

x2

I2C

x1

I2S

x1

红外收发器

2

LED PWM

6

USB串口

1

看门狗

3

从芯片的设计的定位上来看,主要定位在智能家具或者小型的物联网设备端等等。

下面来体验一下开发流程。

2.开发环境搭建

要想使用该芯片,开发环境搭建很关键,这样才能玩的更加的好。本文主要是基于Ubuntu20.04进行环境搭建,当然也支持Windows等平台的环境搭建。

  • ESP32-C3
  • Ubuntu20.04 PC
  • 串口线

2.1 下载ESP-IDF的环境

注意:当前ESP-IDF还没有集成在ESP-IDF正式发布的版本(v4.2)中。需要使用v4.3 beta版本。

下载的地址如下:

https://dl.espressif.com/dl/esp-idf/releases/esp-idf-v4.3-beta3.zip

下载完成解压即可。

注意编译时需要安装以下的软件包

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

进入esp-idf-v4.3-beta3中,执行./install.sh

编译完成后,出现上述图片结果即可。

输入

. ./export.sh

导入环境,这一步会将ESP-IDF需要的PATH添加到环境变量中,如果希望下次开机,这些环境变量还存在,可以添加到系统环境变量中~/.bashrc

alias get_idf='. /home/bigmagic/workspace/esp-idf-v4.3-beta3/export.sh'

然后更新一下源即可

source ~/.bashrc

每次开启新的窗口,只需要输入get_idf即可自动进行环境路径的添加。

2.2 编译代码

ESP-IDF环境搭建完成后,即可进行源代码的编译与下载。

首先创建一个自己的工作目录。

注意:每次新开一个终端,输入get_idf更新环境。

首先简单的编译hello_world程序。

依次输入

cp -r $IDF_PATH/examples/get-started/hello_world .

然后开始进行配置

cd hello_world
idf.py set-target esp32c3
idf.py menuconfig

其中menuconfig是配置相关的设置,这里可以配置Wi-Fi的SSID,等等,由于helloworld没有许多需要配置的,所以不用管理。

直接输入

idf.py build

开始编译。

2.3 程序烧录与验证

程序烧录可以通过如下的命令进行

idf.py -p PORT [-b BAUD] flash

其中[-b BAUD]可选的设置波特率的地方。

需要注意的是,在Ubuntu下可能出现串口硬件没有权限访问的错误。

可以修改串口权限

sudo chmod 777 /dev/ttyUSB0

由于我插入设备识别的是/dev/ttyUSB0,所以改变该权限即可。

idf.py -p /dev/ttyUSB0 flash

正常情况下,会出现如下的信息。

最后输入

idf.py -p /dev/ttyUSB0 monitor

可以看到串口的输入信息。

退出监听模式输入Ctrl + ]

3.ESP32-C3 LED分析

前面已经完成相关的基础环境搭建,接着可以根据上面的环境,分析一下外设的使编程。

在ESP32-C3-DevKitC-02的原理图可以在下面的网站中找到。

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitc-02.html

其RGB LED的原理图如下

当前采用的是SK68XXMINI-HS,该LED的驱动主要是依靠PWM的驱动进行。

其相关的原理说明如下

https://www.rose-lighting.com/wp-content/uploads/sites/53/2020/05/SK68XX-MINI-HS-REV.04-EN23535RGB-thick.pdf

按照不同的PWM的调节,可以产生不同颜色的光。

在ESP-IDF中,已经存在demo。

cp -r $IDF_PATH/examples/peripherals/rmt .

然后进入led_strip的目录。

依次输入

idf.py set-target esp32c3

然后选择配置

idf.py menuconfig

选择相关的配置

将硬件引脚改为8。

配置完成,输入S保存,输入Q退出,接着进行编译。

idf.py build

下载程序

idf.py -p /dev/ttyUSB0 flash

下载完成后,可以看到LED正常的闪动。

4.使用WiFi功能

使用ESP32-C3的比较重要的功能就是使用其WiFi联网功能。

第一步:获取代码

cp -r $IDF_PATH/examples/wifi .
cd wifi/getting_started/station

第二步:选择配置

idf.py set-target esp32c3

第三步:设置WiFi的SSID与密码

idf.py menuconfi

设置SSID与密码

第四步:开始编译

idf.py build

第五步:下载程序

idf.py -p /dev/ttyUSB0 flash

第六步:测试程序

idf.py -p /dev/ttyUSB0 monitor

此时测试的是通过连接自己的路由器,然后通过局域网内的ip去ping该station。

可以看到可以正常获取到IP地址,并且可以ping通模块,表示实验成功。

5.小结

本文通过环境搭建、外设编程、WiFi程序的演示,大致的描述了ESP32-C3的编程方式。总的说起来,采用ESP-IDF的集成开发环境,很大程度上可以减少环境搭建的烦恼,可以非常顺利的做上层业务的开发。

特别是采用API的编程方式,让编程的模型更加专注于业务上的设计,比如可以做一些网络应用,智能家居,远程监控等等。体验下来这个RISCV的芯片和其他的ESP32的使用上并无十分明显的区别。后续会通过ESP32-C3上做一些div小项目,只有在更多的测试数据上,才能体现的出优劣。

文章分享自微信公众号:
嵌入式IoT

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:bigmagic
原始发表时间:2021-05-08
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Django环境搭建和开发初体验

    开发中, 使用如上命令安装, 会将包安装到/usr/local/lib/python3.6/dist-packages/下

    菜菜cc
  • 快速带你上手Hyperledger Fabric环境搭建+开发测试

    本文采用virtualbox+vagrant方式搭建Hyperledger Fabric环境,采用VSCode远程开发模式开发调试链码和客户端程序。

    jasonruan
  • Go环境搭建与开发

    下载完成后,直接点击下一步安装即可,没有其它注意事项(不建议修改默认安装地址)

    明知山
  • vue3.0 Composition API 上手初体验 构建基本项目开发环境

    目前,vue3.0 已经进入了 beta 版本了。众多的特性已经定下来了,相信有不少朋友都已经开始阅读相关的资料或源码了。

    FungLeo
  • Flutter for Web 开发环境搭建与验证

    最新的Flutter 1.5.4已经支持Web开发,这个教程将介绍如何在Linux、windows和Mac下 安装Flutter web开发环境:安装Flutt...

    用户1408045
  • 搭建Java的开发环境与测试

    /* 个人笔记:设置java开发环境 第一步:Jdk工具的安装,可以上oracle官网下载任意版本至本地电脑,注意选择32位或64位的各操作系统。 第二步...

    wolf
  • Flink开发IDEA环境搭建与测试

    Flink具有特殊类DataSet并DataStream在程序中表示数据。您可以将它们视为可以包含重复项的不可变数据集合。在DataSet数据有限的情况下,对于...

    星哥玩云
  • ReactNative开发环境的搭建与开发前准备

        在ReactNative中文网上有详细的开发文档与教程,首先,想要系统了解ReactNative的朋友可以在如下网站中获取详细信息:

    珲少
  • 十分钟上手-搭建vue开发环境(新手教程)

    王小婷
  • JSP 开发环境搭建与项目运行(一)

    最近因业务需要通过网页读取本机文件夹里面的所有文件名称并展示的需求。服务器我选用了Tomcat,开发工具用了JSP,因为jsp可以兼容Java语法。

    毛大姑娘
  • (一)ROS开发平台环境搭建与测试

    Must
  • JSP 开发环境搭建与项目运行(二)

    上一篇讲到了如何搭建服务器环境和运行服务器。这一篇给大家讲讲jsp如何与服务器建立连接。

    毛大姑娘
  • 全志科技A40i国产开发板——虚拟机镜像搭建开发环境与Qt开发体验

    本次测试板卡是创龙科技旗下,一款基于全志科技A40i开发板,其接口资源丰富,可引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetoo...

    创龙科技Tronlong
  • 全志A40i开发板(4核ARM CortexA7)——开发环境搭建与Qt开发体验

    本次测试板卡是创龙科技旗下,一款基于全志科技A40i开发板,其接口资源丰富,可引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetoo...

    创龙科技Tronlong
  • vue3.0 Composition API 上手初体验 普通组件的开发与使用

    通过前面的章节的讲解,我相信大家对于 vue 3.0 的新特性的基本使用,已经没有问题了。但是新的问题来了,组件是怎么玩的呢?

    FungLeo
  • VS2019 Qt开发环境搭建与配置

    vs2022 qt vsaddin已经更新,可以使用了,链接:Index of /archive/vsaddin/2.8.1

    全栈程序员站长
  • vue3.0 Composition API 上手初体验 函数组件的开发与使用

    在上一节中,我们讨论了普通组件的开发与使用,其实相比较 vue 2.0 来说,差别并不大。

    FungLeo
  • Linux开发环境搭建与使用——ubuntu更新设置

    ubuntu操作系统公布时,为了减小操作系统的体积,只配备了主要的系统软件、应用软件。我们开发中须要用到的大部分软件都须要在使用中从网上自行更新。

    全栈程序员站长

扫码关注腾讯云开发者

领取腾讯云代金券