Esp8266物联网开发板详细使用教程

前言

之前在做智能家居的时候需要用到esp8266,我这边因为esp8266物联网开发板的技小新教程相对齐全就不用串口模块,直接使用板子,但是没想到板子的配备的技小新资料中例程和相关的模板基本不能用,官方的指南有些教程也很是迷惑。于是我这边和队友琢磨了相当的一段时间来重新配置其模板和工程文件,并记录了相关的详细使用文档供大家参考


需要的资料

首先提供给大家网址以便资料的下载和学习:
tip:这里跟大家分享的是不基于操作系统的SDK的开发,比较简便且资料较为齐全

以下是学习esp8266所需使用的工具和环境 这里是调试软件,下面是官方的链接 这里偷偷地bb,以上两个调试工具笔者使用完之后效果不是很佳,所以大家有空可以另寻其他调试软件使用

看起来资料好像有点小多哦~不过千万不要有压力,跟着小B往下看,保证学起来简简单单滴

好了,接下来正文开始

搭建SDK开发环境

  1. 打开ai-thinker-IDE1.0安装文件,选择安装路径

  2. 安装完成后,第一次使用aithinker eclipse集成开发环境先以管理员身份运行AiThinkerIDE_V1.0\eclipse\目录下的Confing.exe 应用来配置esp8266和esp32所需要的环境变量(此配置文件运行一次即可)。点击Default设置默认路径,再点击save保存到电脑的环境变量中,记得点一次就行。
    在这里插入图片描述

  3. 安装配置完之后我们会发现在我们桌面没有对应图标,我们需要到AiThinkerIDE_V1.0\eclipse\下找到eclipse.exe文件,右键,选择 发送到->桌面快捷方式,我们就可以在桌面看到图标了。
    在这里插入图片描述

  4. 第一次打开eclipse,会弹出选择eclipse工作区保存的路径,用户自行选择到安装目录下的Ai-Thinker\AithinkerIDE_v1.0文件夹
    在这里插入图片描述

至此环境搭建完成
接下来,我们可以来进行SDK的烧写和编译

SDK的编译和烧写

  1. 配置SDK
    (1)复制ESP8266_NONOS_SDK-3.0.4-temple,拷贝一份将文件夹重命名
    (2)将SDK包中的driver_lib改名为code(意为存放代码的地方)
    注意这里一定要先在SDK工程包导入IDE之前更改文件夹,切不可在import之后再更改文件名,否则会在源文件夹中留下难以发现的配置参数,后面再导入都会报错,最好的方法就是在导入之前最好先有备份
    (3)将example中选取demo拷贝到code中粘贴替换
    (4)将example文件夹删除(可选)
    (5)将third_party/Makefile修改名为makefile.bak
  2. 2.将SDK工程导入到编译器中
    (1)打开eclipse环境,在’project explorer’中右键点击import
    (2)选择C/C++ -> Existing Code as Makefile Project,点击next
    在这里插入图片描述
    3)选择Cygwin GCC,再点击Browse…,选择已配置好的SDK工程路径,点击finish
    在这里插入图片描述
    (4)可点击code->user->user_main.c查看例程程序
    在这里插入图片描述
    (5)在’project explorer’中选中工程名,右键点击’Properties’,在’C/C++Build->Build Commnd’中去掉勾如下图所示并填写 make COMPILE=gcc BOOT=none APP=0 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=6,点击’apply’,再点击OK
    在这里插入图片描述
    注:SPI_SIZE_MAP的赋值需要根据user_main.c开头的定义语句(如下图)去定值,如果没有的或者不支持的值不能对SPI_SIZE_MAP赋值
    在这里插入图片描述
    (6)针对制作SDK空白模板(可选):
    对于 ESP8266_NONOS_SDK_v1.5.2 ⾄ ESP8266_NONOS_SDK_v2.2.1 之间的版本,请在 user_main.c 增加函数 void user_rf_pre_init(void) uint32 user_rf_cal_sector_set(void),可参考 IOT_Demo 的 user_main.c。⽤户可在 user_rf_pre_init 中配置 RF 初始化,RF 设置接⼝为 system_phy_set_rfoption,或者在 Deep-sleep 前调⽤ system_deep_sleep_set_option。如果设置为 RF 不打开,则 ESP8266 Station 及 SoftAP 均⽆法使⽤,请勿调⽤ Wi-Fi 相关接⼝及⽹络功能。RF 关闭时,Wi-Fi 射频功能和⽹络堆栈管理 API

对于 ESP8266_NONOS_SDK_v3.0.0 及之后版本,请在 user_main.c 增加函数 void ICACHE_FLASH_ATTR user_pre_init(void),并且在 user_pre_init 函数中注册自己的 partition table。(注意,此步骤和2.0版本有所不同,至关重要!)
即v3.x版本都需要在user_pre_init 函数中注册partition table(分区表)

void ICACHE_FLASH_ATTR
user_pre_init(void)
{
    
    
	 if(!system_partition_table_regist(at_partition_table, sizeof(at_partition_table)/sizeof(at_partition_table[0]),SPI_FLASH_SIZE_MAP)) {
    
    
			os_printf("system_partition_table_regist fail\r\n");
		}
}

而设置分区表则需要前面的声明代码和定义代码才能成为一个完整可执行的3.0模板,具体代码详见ESP8266_NONOS_SDK-3.0.4-temple->code->user_mian.c文件

(7)编译之前进行保存,在’project explorer’中选中工程名,右键先clean project,清除之前的编译声明,再build project进行编译
注意:编译的时候最好只保留控制台和功能窗口,其他窗口不要打开,以防编译出错
在这里插入图片描述
(8)编译成功后,控制台会有如下显示
在这里插入图片描述
(9)最后要注意,user_cal_sector_set(暂定)user_pre_inituser_init三个函数在程序中需要保留。

  1. Esp8266程序烧写
    工程编译完之后,会在工程文件夹下的bin中生成如下.bin文件
    在这里插入图片描述

我们需要把生成的文件烧写到esp8266中
(1) 打开FLASH_DOWNLOAD_TOOLS工具,选择esp8266,显示对应烧录的UI界面


(2)按照图示配置参数(文件和下载对应地址)
在这里插入图片描述
(3)可以下载的程序有如下所示,但是真正需要下载的程序只有两个系统程序:eagle.flash.bin和eagle.irom0text.bin,其他的只需初次下载即可,但如出现野指针等引发破环了初始配置参数的情况则需要全部选中烧录
在这里插入图片描述
其中烧录的文件作用如下
在这里插入图片描述在这里插入图片描述
(4)根据下载地址图示来配置我们需要下载的程序地址
注:因为ESP-12F模组的外部

Flash==4MB==4096KB==32bit 4MB Flash==0x000 000~ 0x3FF FFF

扇区编号:0x000~0x3FF【Flash扇区==4KB】
对应选择下载地址
在这里插入图片描述
一般只烧写最后两个系统程序即可
(5)烧写时如一直停留在等待同步状态,需要按住开发板的boot,再同时按住restart,再放开restart,最后放开boot,整个过程按住停留时间需要把握好,具体可以尝试几遍即可知;如没有上述情况则不用按键直接烧写即可
下载成功如图所示
在这里插入图片描述
(6)烧写完成之后再按下restart键,此时esp8266蓝灯短亮,开始执行烧写进去的程序



然后就成功了有木有!!!


如果对您有帮助的话,记得一键三连哟~

猜你喜欢

转载自blog.csdn.net/weixin_43930521/article/details/112392684