VSCode+ESP-IDF开发ESP32-S3-DevKitC-1(2)第一个工程 LED心跳灯

VSCode+ESP-IDF开发ESP32-S3-DevKitC-1(2)第一个工程 LED心跳灯

前言

实际开发中很多时候我们需要有一个类似心跳灯或运行指示灯的灯以不同的状态闪烁以表示程序的运行状态,所以第一个工程我们就来控制LED灯,控制LED灯我们先从简单的开始,先在main中延时控制然后点亮了之后,再将控制LED的独立成.c与.h文件,以提高后续更复杂的工程开发的便于维护性

1.新建工程

有些教程新上来就需要先配置一堆,这样做很有好处,但是也有缺点,会让基础较差的人一头雾水或感到很复杂,感觉用ESP32开发远没有他习惯用的某些单片机好用,所以这里咱们工程也简单,就先用默认的配置直接开干,先把大门打开,后续再进行配置。

打开VSCode按Ctrl+Shift+P,然后输入New Project,点击【ESP-IDF:New Project】

点击右下角【Choose Template】后选取模板创建工程


工程创建完成

2.编写控制LED代码

CMakeLists.txt先不用动,其它复杂配置也不用动,待会儿敲完代码直接选串口号和芯片就可以,在main.c中输入如下代码:

c 复制代码
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "driver/gpio.h"

void app_main(void)
{
    gpio_reset_pin(2);
    gpio_set_direction(2, GPIO_MODE_OUTPUT);
    printf("ESP32S3_LED\n");
    while(1)
    {
        gpio_set_level(2, 0);
        vTaskDelay(500 / portTICK_PERIOD_MS);
        gpio_set_level(2, 1);
        vTaskDelay(500 / portTICK_PERIOD_MS);
    }
}

然后选择COM口,芯片,下载方式,注意点击后是在编译器顶部选择


然后可以分步点击Build Project/Flash Device/Monitor Device,也可以直接点击那个一团火图标的一键按钮Build,Flash And Monitor



下载完成,手动或自动打开Monitor则可以看到打印的ESP32S3_LED,之后连接到GPIO2的LED等每秒亮灭一次。

IO用到的函数可参照官方的GPIO&RTC GPIO



3.LED控制独立成.c和.h文件

实际项目中我们把代码都写到main中是很不方便维护和移植的,所以我们需要模块化,编写很多的.c和.h文件,另外独立成很多的任务,而不是在一个while循环中把所有任务写完。虽然现在只有一个控制LED的功能,但是我们依旧可以编写独立的.c .h和创建LED 心跳闪烁任务。

未完待续...

相关推荐
1024奇点16 小时前
【仓颉语言入门 · 第二篇 第 12 课】
开发语言·数据库·ide·mysql·开源
console.log('npc')17 小时前
周期任务功能完整实现:CRON 编辑器 + 模板变量 + 执行历史
javascript·vue.js·编辑器
迪菲赫尔曼18 小时前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
2501_9151063218 小时前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
weixin_3993806920 小时前
TongWeb7.0.4.9M11如何接入到idea(by lqw)
java·ide·intellij-idea
MicrosoftReactor2 天前
技术速递|超越一刀切:为 GitHub Copilot CLI 和 VS Code 实现决策路由
vscode·ai·github·copilot·决策路由
徐小夕@趣谈前端2 天前
Web 端 OFD 编辑器踩坑记:从“只能预览”到“在线改”
前端·编辑器
_小许_2 天前
AI IDE 与 Agent Harness:一次说清 Cursor、Codex 该怎么选
ide·人工智能·ai编程·cursor·codex
喆星时瑜2 天前
探索 Anaconda 中的 JupyterLab、Jupyter Notebook、iPython 解释器(Qt 控制台)和 Spyder IDE
ide·jupyter·ipython
2501_915918412 天前
Windows 上开发 React Native iOS,真机调试、Fast Refresh 与打包 ipa
windows·vscode·react native·ios·个人开发·swift·敏捷流程