文章目录
- 前言
- 一、概述
-
- 1.HDK(模组及开发板等硬件设备)
- 2.ESP8266 SDK
- 3.ESP8266 FW
- 4.ESP8266 工具集
-
-
- 编译器
- 固件下载工具
- 串口调试工具
-
- 二、硬件准备
- 三、软件准备
-
- 1.Non-OS SDK
-
-
- Non-OS SDK内容
-
- bin:编译生成的 BIN 文件,可直接下载到 Flash 中
-
- 2.软件环境搭建 —— 安信可一体化开发环境
-
-
- 3.编译nonos-Template
-
- 四、Flash布局
-
- 布局说明
- 存储大小位置修改
- 下载地址
- 烧录工具
- 五:SDK程序架构
-
- 1.普通单片机的程序运行是基于“主循环”的方式
- 2.ESP8266的SDK编程是基于“内核回调”的方式
- 3.乐鑫官方SDK API使用说明
-
-
- 1.简介说明
- 2. 代码结构
-
- 六. 调用API,添加源文件
-
- 1. 调用到的2个接口及头文件
- 2. 串口打印“Hello world”和版本信息
- 3. 设置串口信息
- 七.看门狗
-
- 1. 看门狗函数
- 2.函数所调用的头文件
- 3. 程序模拟用户长时间占用CPU,看门狗重启
- 4.调用喂狗程序
- 八.ESP8266的延迟函数delay
-
- 1.delay函数
- 2.调用的头文件
- 3.编写延迟秒函数
- 4 .串口打印函数
- 九.设置8266的GPIO接口为输出模式
-
- 1.实现功能
- 1.设置IO口功能
-
-
- 1.需要调用的头文件及C文件
- 2.管脚功能选择
- 3.ESP-12F和ESP8266芯片管脚位置和名称对应图
-
- 2.设置IO口为输出模式
-
-
- 1.实例
-
- 3.设置管脚为输入模式(读引脚状态)
-
-
- 1:思路
- 2:函数库各函数官方解释
- 3.实例
-
- 十.入门完结
前言
一、概述
SDK使用框图:
1.Non-OS SDK
2.软件环境搭建 —— 安信可一体化开发环境
3.编译nonos-Template
命名下载下来的SDK文件,这个APP就是我们编写程序的地方
然后打开third_party文件,将Makefile命名为Makefile.bak
然后重新导入编译器中,这样就配置完毕
当我们导入成功工程之后,首次编译模板工程看看
正常的编译步骤:
- Clean Project
- 进入 Windows系统。
- Non-OS SDK简介Non-OS SDK为用户提供了一套应用程序编程接口(AP),能够实现ESP8266的核心功能改,例如数据接收/发送、TCPIP功能、硬件接口功能,以及基本的系统管理功能等。用户不必关心底层 络,如Wi-Fi,TCP/IP等的具体实现,只需要专注于物联 上层应用的开发,利用相应接口实现各种功能即可。
- ESP8266物联 平台的所有 络功能均在库中实现,对用户不透明。用户应用的初始化功能可以在user-main.c中实现。
- void user-init(void)是上层程序的入口函数,给用户提供一个初始化接口,用户可在该函数内增加硬件初始化、 络参数设置、定时器初始化等功能。
? 对于ESP8266-NONOS-SDK-v3.0.0及之后版本,请在user-main.c增加函数 void ICACHE-FLASHATTR user-pre-init(void) ,并且在user-pre-init中注册自己的partition table.
? 对于ESP8266NONOS-SDK-v1.5.2至ESP8266NONOS-SDK-v2.2.1之间的版本,请在user-main.c增加函数void user-rf-pre-init(void)和uint32user_rf-cal_sector_set(void),可参考10TDemo的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-F相关接口及 络功能。RF关闭时, Wi-Fi射频功能和 络堆栈管理API均无法使用。
对于ESP8266NONOS-SDK-v2.1.0及之后版本,用户如果并未使用DIO-To-QIO flash,可以在user-main.c中增加空函数void user-spi-flash-dio-to-qio-pre-init(void)来优化iRAM空间。SDK中提供了对JSON包的处理API,用户也可以采用自定义数据包格式, 自行对数据进行处理。 - 应用函数
- 回调函数
- 用户任务
- 中断服务程序(Interrupt Service Routines, ISR)
-
应用函数
类似于嵌入式C编程中的常用C函数。这些函数必须由另一个函数调用。应用函数在定义时建议添加ICACHE-FLASH-ATTR宏,相应程序将存放在flash中,被调用时才加载到cache运行。而如果添加了IRAM_ATTR宏的函数,则会在上电启动时就加载到iRAM中 -
回调函数
是指不直接从用户程序调用的函数,而是当某系统事件发生时,相应的回调函数由non-OS SDK内核调用执行。这使得开发者能够在不使用RTOS或者轮询,事件的情况下响应实时事件。
要编写回调函数,用户首先需要使用相应的register_cb API注册回调函数。回调函数的示例包括定时器回调函数和 络事件回调函数。 -
中断服务程序(ISR)
是一种特殊类型的回调函数。发生硬件中断时会调用这些函数。当使能中断时,必须注册相应的中断处理函数。请注意, ISR必须添加IRAM_ATTR。 - 参考资料《ESP8266 Non-OS SDK API》
- 如前所述, non-OS SDK不支持抢占任务或进程切换。因此开发者需要自行保证程序的正确执行,用户代码不能长期占用CPU,否则会导致看门狗复位, ESP8266重启。
- 如果某些特殊情况下,用户线程必须执行较长时间(比如大于500 ms) ,建议经常调用system-soft-wdt_feed() API来喂软件看门狗,而不建议禁用软件看门狗。
烧录工具
五:SDK程序架构
1.普通单片机的程序运行是基于“主循环”的方式
main.c文件中:
int main (void) //程序入口
{
初始化.: // 10口、定时器、设置中断
while(1)
{
… //主循环,完成程序功能
}
return 0;
}
void xxxIRQHandler (void)//中断函数
{
…//执行中断处理
}
2.ESP8266的SDK编程是基于“内核回调”的方式
user main.c文中:
3.乐鑫官方SDK API使用说明
参考资料《ESP8266 Non-OS SDK API》
1.简介说明
2. 代码结构
Non-OS SDK中的代码结构具有以下特征:,
Non-OS SDK不像基于RTOS的应用程序支持任务调度。Non-OS SDK使用四种类型的函数:
六. 调用API,添加源文件
参考资料《ESP8266 Non-OS SDK API》
1. 调用到的2个接口及头文件
七.看门狗
1. 看门狗函数
3. 程序模拟用户长时间占用CPU,看门狗重启
4.调用喂狗程序
2.调用的头文件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!