【本文发布于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种情况:
- 我之前在安信可的Gitee那拉取的SDK是基于乐鑫3.2版本增加了例程的,此版本SDK不必按照其它博文那样手动配置环境变量;
- 目前乐鑫官方SDK已更新到3.4版本,编译工具链需要修改为V8.4,因此自动添加的V5.2.0工具链不适用了,需要手动修改此环境变量。
修改方式
安装目录 D:\UserSW_Install\AiThinkerIDE_V1.5.2\msys32\opt\esp8266 下已经自动添加了2个工具链
其中v4.8.5是3.0以下的SDK使用的,我们现在要做的是在乐鑫GitHub下载Windows的8.4的工具链
下载完成后解压并重命名放置到上述目录中
并且修改环境变量指向新的目录
(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)配置编译命令
- 在工程上右键依次点击 Make Targets > Create , Target name填入“面板设置命令”
(可自定义),command填入 mintty.exe -e make menuconfig 。最后点击OK
- 在工程上右键依次点击 Make Targets > Build,双击“面板设置命令”,出现如下界面
- 需要我们关注的是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】