ESP8266 SDK开发之AiThinkerIDE_V1.5.2安装、配置以及编写一个程序

news2024/11/16 7:33:04

【本文发布于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安装包(或者到文末附件获取,本文提到的资料已一并上传CSDN),因为该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



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、附件

【链接】

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

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

相关文章

IEEE论文投稿流程

转载文章 这是篇节省你翻论坛、查资料的文章。 我将把每一步尽量写的清楚&#xff0c;能够让新手按照这篇文章进行完整的投稿。 即使你从未投过稿&#xff0c;完全不了解IEEE的投稿流程&#xff0c;希望按照这篇文章&#xff0c;能够帮助你流畅无误的投稿 这是针对本科生和低年…

springboot整合springcloud之nacos配置中心

整合配置中心nacos 应用场景&#xff0c;每次改配置要重新启动才能生效&#xff0c;而把配置放到nacos上&#xff0c;如有修改&#xff0c;那么发布后项目自动就生效了。 场景2&#xff1a;不同微服务单独设置一个命名空间。 一、项目操作 1.引入依赖 <!--使用spring-cloud…

JDBC---Maven之jdbc连接数据库

Maven之jdbc连接数据库 这里需提前将maven环境配置好 链接: Maven环境配置 文章目录Maven之jdbc连接数据库JDBC创建Maven工程JDBC访问数据库步骤1.Class.forName()加载驱动2.DriverManager获取Connection连接3.创建Statement执行SQL语句4.返回ResultSet查询结果()5.释放资源JD…

vsmoon靶场实战笔记

vsmoon靶场实战笔记 web打点 信息收集 nmap扫描端口 扫描结果 └─$ nmap -sV -A 192.168.1.106 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-01 12:51 CST Nmap scan report for 192.168.1.106 Host is up (0.00014s latency). Not shown: 986 closed tcp p…

YOLOv5更换骨干网络之 GhostNet

论文地址&#xff1a;https://arxiv.org/abs/1911.11907 代码地址&#xff1a;https://github.com/huawei-noah/ghostnet 由于内存和计算资源有限&#xff0c;在嵌入式设备上部署卷积神经网络&#xff08;CNN&#xff09;很困难。特征图中的冗余是那些成功的神经网络的重要特征…

年度征文 | 回顾2022,展望2023(我难忘的2022,我憧憬的2023)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…

用javascript分类刷leetcode7.双指针(图文视频讲解)

双指针 普通指针&#xff1a;两指针同一方向或不同方向对撞指针&#xff1a;两指针互相靠拢快慢指针&#xff1a;一快一慢 141. 环形链表 (easy) 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再…

LeetCode字符串经典题目(四)

1. LeetCode344. 反转字符串 2. LeetCode541. 反转字符串 II 3. LeetCode剑指 Offer 05. 替换空格 4. LeetCode151. 反转字符串中的单词 5. LeetCode剑指 Offer 58 - II. 左旋转字符串 6. LeetCode28. 找出字符串中第一个匹配项的下标​ 7. LeetCode459. 重复的子字符串​…

Mac内存空间不足如何释放储存空间?深度清理Mac磁盘空间的方法教程

今日coco玛奇朵将分享一些能够释放大量Mac内存空间的方法&#xff0c;以便大家能够优化Mac的运行速度外还能规避由于Mac空间不足而导致安装Ventura时出现的一系列问题。 大家都知道更新Macos都需要预备非常大的内存空间才能进行&#xff0c;当更新完Macos之后都会留下大量的备…

台大应用深度学习笔记

deep learning end-to-end training 1. 神经元 1.1 为什么需要bias&#xff1f; 为了给对应位置一个prior&#xff0c;给它一个初始值&#xff0c;b越大&#xff0c;σ(z)11e−z\sigma(z) \frac{1}{1e^{-z}}σ(z)1e−z1​越大&#xff0c;越趋向于1. 多层神经网络&#xff…

安装Windows和Ubuntu双系统

制作Ubuntu安装盘在Windows上查看磁盘格式 不同的磁盘格式&#xff0c;需要跟BIOS里面不同的引导模式配合来启动操作系统&#xff0c;如下图&#xff1a; 我的电脑是GPT格式&#xff1a; 准备好给Ubuntu的磁盘空间 在Windows系统中&#xff0c;在一个200G的清空数据的磁盘上…

【Flask-Web】基于layui前端模板搭建简易管理系统

1. JavaScript 1.1. 函数 var cars ["Saab", "Volvo", "BMW"]; var txt "string"; var b2new Boolean(1); var x Math.PI; // 返回PI var y Math.sqrt(16); // 返回16的平方根 var num new Number(value); try {adddlert("…

aws eks 理解和使用terrafrom创建eks集群(离线安装provider和module)

参考 使用 Terraform 在 AWS 中国区域实现自动化部署指南系列1使用 Terraform 在 AWS 中国区域实现自动化部署指南系列2https://lonegunmanb.github.io/introduction-terraform/加速 Terraform init terraform 相关概念 terraform是对标aws cloud formation的iac工具&#x…

Redis集群系列十一 —— 故障转移一

故障发现 Redis 集群内节点通过 ping/pong 消息实现节点通信&#xff0c;消息不但可以传播节点槽信息&#xff0c;还可以传播其他状态。当集群中某个节点出现问题时&#xff0c;需要识别出节点是否发生了故障&#xff0c;因此故障发现是通过Gossip 协议来广播自己的状态以及自…

日志系统:WAL和二阶段提交

1. 前言 一条更新语句在执行过程中不仅仅要操作不仅仅是通过数据库的组件(分析器、优化器、执行器、存储引擎等&#xff09;操作表数据还涉及以下内容&#xff1a; 要操作日志系统的redo log、binlog和undo log&#xff0c; 更新操作也不是实时更新到磁盘的而是通过3.Write-A…

DDR3 数据传输 (五)

目录 引言 设计说明 参数说明 设计简图 IP配置说明 写FIFO IP

在linux上使用CMake构建和安装gtest

在linux上使用CMake构建和安装gtest一、准备工作二、构建并安装gtest的静态库三、构建并安装gtest的共享库一、准备工作 本机环境&#xff1a; 系统版本&#xff1a;RHEL 7.6GCC/G版本&#xff1a; 12.1.1googletest版本&#xff1a;1.12.1 注意&#xff0c;gtest的1.12.x分…

基于准则匹配的图像对准

一、概述 在图像处理相关的问题中&#xff0c;图像对准是一类典型的问题&#xff0c;也就是要将两幅图严丝合缝地对应起来。通常来讲&#xff0c;两幅图大小不一&#xff0c;一个是模板&#xff0c;一个是母图&#xff0c;也就是要在母图中搜寻定位到与模板图最为接近的区域。 …

QML教程(七) JavaScript

目录 一、对属性值使用 JavaScript 表达式 二、在 QML 中添加 JavaScript 函数 三、使用 JavaScript 文件 四、属性绑定中的 JavaScript 五、信号处理程序中的 JavaScript 六、将信号连接到 JavaScript 函数 七、启动执行 JavaScript QML 提供的 JavaScript 主机环境可以…

算法学习-并查集(持续更新中)

本文参考&#xff1a; 最容易理解的并查集详解 详解&#xff1a;并查集&#xff08;Union-Find&#xff09; 「代码随想录」684. 冗余连接:【并查集基础题目】详解&#xff01; 并查集从入门到出门 并查集常常在做图相关的题目时冒出来&#xff0c;但是笔者经常去回避这样的解法…