一,目的。
使用ESP8266官方提供的固件SDK的人都知道,在大部分的API接口调用和使用逻辑上跟标准C APP开发是有很大差别的,有些功能需要自己花很大时间去进行功能封装和逻辑设计,对于一个精通C语言的人,也很难在短时间内开发出一个简单功能的。同时如果需要使用硬件驱动功能,如:I2C,UART,PWM等,没有驱动开发经验的人即使把代码写出来了,但一旦遇到问题,也很难去解决,这需要有一定的硬件知识和驱动调试经验。为此,我在平时的工作中花了一些时间对一具非通用性的API函数接口、单元功能逻辑和硬件驱动相关的进行了封装,通过这套接口,对于一个只会C应用开发的人来说,能很快地理解和使用基本硬件功能。
二,编译环境和基本要求
搭建ESP8266的编译环境,请参考:http://blog.csdn.net/yunjinwang/article/details/52668330
ESP8266SDK分NONOS和RTOS两种,我这里是针对NONOS的,有一定的C语言基础即可,懂一点硬件知识和驱动知识更佳,会简单的shell命令和makefile知识。
有linux基础的建议搭建Linux编译环境,稳定可靠效率高。
三,封装SDK的下载
由于在工作中会有一具的功能优化、bug fix和功能增加,如有疑问请发邮件:wyj0617mail@aliyun.com
考虑到更新和便捷性,将最新SDK及测试代码放在svn服务器上。http://www.smartinhome.cn:8001/svn/espSdkRelease,用户名:user, 密码:user
最新的地址:https://dev.smartinhome.cn/svn/espSdkRelease/
最新的SDK接口函数与下面的描述有异,请以最新的SDK头文件描述为主。
20170220已更新支持安信可的ESP8266IDE环境,测试通过,SDK中有方法说明。
四,API函数接口功能及介绍
a,auto_sys_utils.h 系统基本功能模块
1, void AIH_log_init();初始化串口log输出,波特率固定为115200, 8N1
2, int8_t AIH_key_init(int8_t *gpioNumArray, int8_t arrayNum, key_press_cb keyCb);初始化GPIO输入,目前支持GPIO 0\2\4\5\12\13\14\15,GPIO口初始化后会拉高,当检测到低电平时,触发PRESS,key_press_cb回调函数后返回按键事件的类型及长短按,3秒算长按
3,int8_t AIH_status_light_set(int8_t gpioNum, int8_t defaultStatus, int32_t intralMs);设置某一GPIO口按设置的intralMs闪烁,目前支持GPIO 0\2\4\5\12\13\14\15\16
4,int8_t AIH_gpio_output(int8_t gpioNum, int8_t le