网站设计结果,用dw怎么做登录页面的网站,微信前端 后端wordpress,网站馆店精准引流怎么推广ESP-IDF学习——1.环境安装与hello-world 0.前言一、环境搭建1.官方IDE工具2.vscode图形化配置 二、示例工程三、自定义工程四、点灯五、总结 0.前言 最近在学习freertos#xff0c;但由于买的书还没到#xff0c;所以先捣鼓捣鼓ESP-IDF#xff0c;因为这个比Arduino更接近底… ESP-IDF学习——1.环境安装与hello-world 0.前言一、环境搭建1.官方IDE工具2.vscode图形化配置 二、示例工程三、自定义工程四、点灯五、总结 0.前言 最近在学习freertos但由于买的书还没到所以先捣鼓捣鼓ESP-IDF因为这个比Arduino更接近底层并且也是基于FreeRTOS实现的所以先熟悉一些相关基础功能。
一、环境搭建 ESP-IDF支持windows、linux、MacOS但总体比较起来windows下安装似乎更加方便所以笔者就以windows作为开发环境。Linux和MacOS用户可以参考官方安装教程。 windows下的安装也可以分为官方IDE和vscode开发环境两种
1.官方IDE工具 可以直接进入官方的下载链接进行下载和安装。除此之外还需要安装python3安装完成后即可通过桌面installer快捷方式中的命令行进行一系列的配置和编译。
2.vscode图形化配置 官方ide是基于eclipse界面做的并且编译和下载还需要执行idf.py命令比较繁琐所以笔者更喜欢使用vscode图形化界面进行开发还可以使用ai代码工具辅助开发更加方便。 在vscode中安装Espressif IDF插件 然后会跳转到配置界面如果没有跳转在vscode的命令行中输入 ESP-IDF: Configure ESP-IDF extension即可进入配置界面进入express即可配置 download server可以选择github(需要网络环境)也可以选择Espressif(乐鑫国内下载地址)如果事先有安装官方ide和python则version可以选择从本地查找如果未安装则可以选择一个release version然后在下方选择一个安装地址点击install即可在线安装(建议有良好的网络环境)。
二、示例工程 安装完成后在vscode命令行中输入ESP-IDFNew Project即可新建工程 选择如下选项即可加载示例的hello_world工程 编译之前需要在menuconfig中选择芯片flash大小打开图形化工具搜索flash设置即可编译和烧录。示例工程的功能为启动后打印一次hello world然后十秒后重启板子。
三、自定义工程
在创建工程时选择sample project即可创建空白项目 将FreeRTOS的头文件包含进来即可使用相关api。这里有两个地方需要注意如果使用printf时未添加换行符则需要使用fflush(stdout)将缓冲区中的数据打印出来。另外vTaskDelay(1000)函数的延时为1000个时钟tick所以想要延时1s需要除以当前的时间周期在menuconfig中查找tick即可配置相关参数。 程序的结果即为每隔一秒打印一次hello world。
四、点灯
笔者的板子上有两颗LED灯就从简单的led闪烁开始。 main.c
#include stdio.h
#include freertos/FreeRTOS.h
#include freertos/task.h
#include driver/gpio.huint32_t led_staus 0;void app_main(void)
{//GPIO初始化gpio_reset_pin(GPIO_NUM_12);gpio_set_direction(GPIO_NUM_12, GPIO_MODE_OUTPUT);gpio_reset_pin(GPIO_NUM_13);gpio_set_direction(GPIO_NUM_13, GPIO_MODE_OUTPUT);for(;;){//设置引脚输出电平gpio_set_level(GPIO_NUM_12, led_staus);gpio_set_level(GPIO_NUM_13, !led_staus);led_staus !led_staus;vTaskDelay(1000 / portTICK_PERIOD_MS);}
}编译烧写后即可看见LED闪烁。
五、总结 ESP-IDF对于熟悉FreeRTOS的人来说应该是比较简单的除了底层驱动的API需要查询官方手册进行配置上层的FreeRTOS API基本都可以通用。不过之前如果学习的是STM32CubeIDE中的FreeRTOS CMSIS封装层的话可能还需要适应一下。笔者目前也刚学习玩FreeRTOS的内核组件后续在STM32上学习了一些外设开发之后也会同步学习使用ESP-IDF的驱动方式。