ESP8266 SDK开发(ESP8266_RTOS_SDK 3.x)之AiThinkerIDE_V1.5.2安装、配置以及编写烧录一个程序

news2024/11/18 23:31:55

【本文发布于https://blog.csdn.net/Stack_/article/details/128509864,未经允许不得转载,转载须注明出处】


前言

乐鑫官方不搞IDE,安信可搞了IDE,但是各版本之间安装配置有差异,还没有文档说明。官方安装配置教程不完全适用于新版IDE以及更新的SDK,就很乱。

而有些第三方安装配置教程不标注版本信息,但不同版本的IDE或者不同版本的SDK安装配置是不一样的,所以这样的文章没有参考意义,也就是这个开发环境的配置教程是有时效性的,也许这篇文章日后也会随着官方资料的更新而过时。

本文章只适用于 AiThinkerIDE_V1.5.2 以及 ESP8266_RTOS_SDK 3.0 以上的版本(目前最新是3.4)。

此文章写得没有那么详细,更多是作为补充说明的存在。因此建议先看以下文章

1
2
3


1、安装配置AiThinkerIDE_V1.5.2


(1)安装IDE


到安信可官网获取IDE安装包(或者到文末附件获取,本文提到的资料已一并上传),因为该IDE基于Eclipse修改,安装运行前须安装配置Java环境。

双击安装包,选择安装位置以及选择是否生成桌面图标,然后将自动安装并自动添加环境变量到系统中。

在这里插入图片描述


在这里插入图片描述



(2)配置编译工具链(GCC编译器)


该版本IDE在安装的时候会自动添加环境变量到系统,但会有2种情况:

  1. 我之前在安信可的Gitee那拉取的SDK是基于乐鑫3.2版本增加了例程的,此版本SDK不必按照其它博文那样手动配置环境变量;
  2. 目前乐鑫官方SDK已更新到3.4版本,编译工具链需要修改为V8.4,因此自动添加的V5.2.0工具链不适用了,需要手动修改此环境变量。

在这里插入图片描述

AiThinkerProjectForESP是安信可那拉取的,ESP8266_RTOS_SDK是乐鑫那拉取的



在这里插入图片描述

自动添加的编译工具版本为5.2



修改方式

安装目录 D:\UserSW_Install\AiThinkerIDE_V1.5.2\msys32\opt\esp8266 下已经自动添加了2个工具链

在这里插入图片描述
其中v4.8.5是3.0以下的SDK使用的,我们现在要做的是在乐鑫GitHub下载Windows的8.4的工具链



在这里插入图片描述


下载完成后解压并重命名放置到上述目录中

在这里插入图片描述
并且修改环境变量指向新的目录

在这里插入图片描述

D:\UserSW_Install\AiThinkerIDE_V1.5.2\msys32\opt\esp8266\v5.2.0_for_3.0\bin 修改为D:\UserSW_Install\AiThinkerIDE_V1.5.2\msys32\opt\esp8266\v8.4.0_for_3.4\bin



(3)重启IDE


如果修改了编译工具,则必须重启AiThinkerIDE



2、创建并烧写一个工程


(1)导入工程


从SDK的examples\get-started目录拷贝一个hello_world工程到SDK外面一个新建的目录,然后打开AiThinkerIDE,依次点击File > Import > C/C++ > Existing Code as Makefile Project > Next > Browse,选择工程目录以及按下图配置好后点击Finish。


在这里插入图片描述



(2)配置SDK路径


在工程上右键选择Properties,展开C/C++,点击Environment,Add一个IDF_PATH,Value为你的本地SDK目录(复制路径填入)


在这里插入图片描述
在这里插入图片描述


(3)配置编译命令


  1. 在工程上右键依次点击 Make Targets > Create , Target name填入“面板设置命令”
    (可自定义),command填入 mintty.exe -e make menuconfig 。最后点击OK

在这里插入图片描述


  1. 在工程上右键依次点击 Make Targets > Build,双击“面板设置命令”,出现如下界面

在这里插入图片描述


  1. 需要我们关注的是Serial flasher
    config
    这一项,里面的参数根据实际的模块去选择。我的是ESP12-F,通过方向键以及回车键将参数修改为 DIO 以及 4MB 后Save。最后Exit。

在这里插入图片描述


(4)配置烧写命令


在工程上右键依次点击 Make Targets > Create , Target name填入“下载命令” (可自定义),command填入 make flash ESPPORT=COMx,其中x为ESP8266板子的实际的串口号 。最后点击OK


在这里插入图片描述



(5)编译、下载


接下来就可以在工程上右键Clean Project然后Build Project了。当Console控制台出现如下信息后,即可点击 Make Targets > Build > 下载命令 进行下载了(注意先解除串口助手对该串口的占用)。

注意:该IDE不像其它的那样点击编译时会先自动保存项目文件再编译。如果没有按保存,它不会自动保存也就不会编译最新的代码。


在这里插入图片描述



3、修改例程


(1)获取API

在安信可官网找到3.0之后的开发文档

(2)修改代码

/* 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 "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "driver/gpio.h"
#include "driver/uart.h"	//添加头文件

static void led_task(void* parm)
{@ CSDN Tyrion.Mon
	gpio_config_t gpio_config_structure;

    gpio_config_structure.pin_bit_mask = GPIO_Pin_16;
    gpio_config_structure.mode = GPIO_MODE_OUTPUT;
    gpio_config_structure.pull_up_en = 0;
    gpio_config_structure.pull_down_en = 0;
    gpio_config_structure.intr_type = GPIO_INTR_DISABLE;

	gpio_config(&gpio_config_structure);

	while(1)
	{
		/*亮500ms 灭500ms,不断重复*/
		gpio_set_level(GPIO_NUM_16, 0);
		vTaskDelay( 500 / portTICK_PERIOD_MS );
		gpio_set_level(GPIO_NUM_16, 1);
		vTaskDelay( 500 / portTICK_PERIOD_MS );
		printf("led_task运行中\r\n");
	}

}

void app_main()
{@ CSDN Tyrion.Mon
	uart_set_baudrate(0, 115200);	//修改波特率

    printf("Hello world!\n");

    /* Print chip information */
    esp_chip_info_t chip_info;
    esp_chip_info(&chip_info);
    printf("This is ESP8266 chip with %d CPU cores, WiFi, ",
            chip_info.cores);

    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");

    xTaskCreate(led_task, "led_task", configMINIMAL_STACK_SIZE, NULL, 4, NULL);	//注册一个任务(此为freertos的API)

}


4、附件

【CSDN链接】
【网盘 提取码 i08v】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CTFHUB技能树-SSRF-redis协议踩坑

在gopherus上面输入命令&#xff1a;python gophers.py --exploit redis 将自动生成的代码url解密可以得到 如果是get传参需要再进行一次url编码 虽然蚁剑连接不上但可以用urlshell?cmdls / 获取flag 接下来看可以连接蚁剑的代码 文件名最好还是用shell.php 我测试了s.…

【C++初阶8-vector实现】没想的那么简单!

前言 本期带来vector实现&#xff0c;和以前的顺序表差别不大。 博主水平有限&#xff0c;不足之处望请斧正&#xff01; 预备知识 实现参考SGI的stl30 我们看这种源码&#xff0c;要抓框架看&#xff1a;首先找类&#xff0c;看它的属性&#xff0c;再看方法 template &l…

全方位解析 C 端和 B 端的产品特性

近年来&#xff0c;互联网进入下半场&#xff0c;C 端流量红利逐渐消退&#xff0c;很多企业转向了 B 端服务&#xff0c;随之而来的是产品设计者的转型&#xff0c;现在越来越多的 C 端产品设计师开始涉足到 B 端产品的设计&#xff0c;这是一个知识迁移的过程&#xff0c;需要…

自动驾驶专题介绍 ———— 摄像头

文章目录介绍工作原理实现功能分类按通信协议区分按不同感光芯片按像元排列方式介绍 摄像头可以采集汽车周边的图像信息&#xff0c;跟人类的眼睛最为接近。摄像头可以拥有较广的视场角、较大的分辨率&#xff0c;还可以提供颜色和纹理等信息。这些信息对于实现自动驾驶功能是存…

Mentor-dft 学习笔记 day48-OCC With Capture Enable Clock Control Operation Modes

OCC With Capture Enable 有一个OCC具有capture_enable输入&#xff0c;可以与自由运行的慢速时钟一起使用。当OCC指定为启用捕获&#xff08;capture_trigger:capture_en&#xff09;时&#xff0c;在输入自由运行的慢时钟上添加时钟门控器&#xff0c;以从自由运行的时钟输…

影响宝宝大脑发育的6个坏习惯,你可能每天都在做

“望子成龙&#xff0c;望女成凤”这几乎是每个父母的愿望。虽然有一个高智商的天才宝宝太难了&#xff0c;但从不妨碍父母希望孩子更健康、更聪明。所以大家都比较关注宝宝的大脑发育&#xff0c;希望宝宝的大脑发育更好&#xff0c;长大后更聪明。但在日常生活中&#xff0c;…

android 12+从后台启动FGS限制

后台启动FGS限制 限制简介 以 Android 12&#xff08;API 级别 31&#xff09;或更高版本为目标平台的应用在后台运行时无法启动前台服务&#xff0c;少数特殊情况除外。 如果应用程序在后台运行时尝试启动前台服务&#xff0c;而前台服务不满足其中一种异常情况&#xff0c;系…

vue前端打包Docker镜像并nginx运行

首先说明咱们的前端项目是基于Vue的&#xff0c;反向代理使用的是nginx 1.打包vue前端项目生成dist文件夹上传至服务器 新建一个文件夹&#xff0c;叫vueDockerTest&#xff0c;下面的文件都需要。 cert是你存放ssl证书的文件夹&#xff0c;nginx.conf 是nginx的配置文件&am…

Kotlin 惰性集合操作-序列 Sequence

集合操作函数 和 序列 在了解 Kotlin 惰性集合之前&#xff0c;先看一下 Koltin 标注库中的一些集合操作函数。 定义一个数据模型 Person 和 Book 类&#xff1a; data class Person(val name: String, val age: Int) data class Book(val title: String, val authors: List…

jmeter 5.5+influxdb 2.0+grafana v9.3.2 - 压测看板setup

Docker set up 安装docker应用 https://docs.docker.com/desktop/install/mac-install/&#xff0c;在官网下载docker安装包&#xff0c;和安装其他的mac应用是一样的操作。 设置国内的镜像仓库&#xff08;拉取镜像会快很多&#xff09; {"registry-mirrors": [&q…

叠氮-聚乙二醇-羧酸;叠氮-单乙二醇-丙酸Azido-PEG1-acid;1393330-34-1小分子PEG衍生物

Azido-PEG1-acid 中文名称&#xff1a;叠氮-聚乙二醇-羧酸&#xff1b;叠氮-单乙二醇-丙酸 英文名称&#xff1a;Azido-PEG1-acid&#xff1b; 分子式&#xff1a;C5H9N3O3 分子量 &#xff1a;159.1 CAS&#xff1a;1393330-34-1 外观&#xff1a;粘稠液体或者固体粉末&#…

SHA和AES加密+GUI Swing写的一个本地运行和保存的密码管理小工具

目录效果项目结构功能1、登录2、加密3、解密4、列表代码1、先准备好两种加密方式的工具类SHAUtilAESUtil2、登录窗口3、主页窗口&#xff08;加密和解密面板&#xff09;4、主页窗口&#xff08;列表面板&#xff09;5、主程序&#xff08;main&#xff09;最后通过SHA和AES加密…

TestStand-序列步骤属性

文章目录GeneralRun OptionLoopingPost ActionSwitchingSynchronizationExpressionPreconditionsRequirementAdditional ResultPropertyCtrl-N创建一个新的Sequence&#xff0c;通过右键创建任意步骤 General Name -步骤的名称。 Type -步骤类型。一般不需要设置。 Adapter-适…

Android Kotlin之协程-异步流Flow的使用

数据流以协程为基础构建&#xff0c;与仅返回单个值的挂起函数相反&#xff0c;数据流可按顺序发出多个值。从概念上来讲&#xff0c;数据流是可通过异步方式进行计算处理的一组数据序列。所发出值的类型必须相同。 数据流包含三个实体&#xff1a; 提供方会生成添加到数据流…

信息安全技术 政务信息共享 数据安全技术要求

声明 本文是学习GB-T 39477-2020 信息安全技术 政务信息共享 数据安全技术要求. 下载地址 http://github5.com/view/790而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 政务信息共享 数据安全 范围 本标准提出了政务信息共享数据安全要求技术框架&…

2023年工作第一天心情感悟

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 今天是2023年1月3日&#xff0c;也是我们上班的第一天。今天这篇随记&#xff0c;也发表下我对2023年的看法&#xff0c;也对过去的2022年做过总结。 &#xff08;2023年元旦&#xff0c;到门头沟…

Spring之ApplicationContext快速入门

目录 一&#xff1a;概述 二&#xff1a;代码演示 三&#xff1a;BeanFactory与ApplicationContext的关系 四&#xff1a;BeanFactory的继承体系 五&#xff1a;ApplicationContext的继承体系 一&#xff1a;概述 ApplicationContext称为Spring容器&#xff0c; 内部封装了…

面试官:能用JavaScript手写一个bind函数吗

经常会看到网上各种手写bind的教程&#xff0c;下面是我在自己实现手写bind的过程中遇到的问题与思考。如果对于如何实现一个手写bind还有疑惑的话&#xff0c;那么可以先看看上面两篇文章。 手写bind vs 原生bind 我们先使用一个典型的手写bind的例子&#xff0c;代码如下&a…

PHP命令执行的函数

在做面试题的时候发现&#xff0c;自己对PHP命令执行的函数的了解并不是很全面&#xff0c;就想这去学习一下。我也在网上找到了许多的资料&#xff0c;在这里我就相当于一个总结吧。 system(); System()函数的主要功能是在系统权限允许的情况是执行系统命令,windows系统和Lin…

【服务器数据恢复】EMC存储Zfs文件系统下raid5数据恢复案例

服务器存储数据恢复环境&#xff1a; 某公司一台EMC存储&#xff0c;12块硬盘组成raid5&#xff0c;2块热备盘&#xff1b; Zfs文件系统。 服务器存储故障&#xff1a; 硬盘故障导致存储崩溃。 服务器存储数据恢复过程&#xff1a; 1、对故障存储所有硬盘进行物理故障检测&…