版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EspressifIoTSDK编程手CurrentFeiCompletionJGCompletion[ ]INTERNAL ]PUBLIC版本信JGHan修订jsonJGHan增加i2cmasterJG增加若干JG可用heap区大小接口;Fei增加SSLServer接口;修改加密接口名称Fei增加获取、修改mac&ip接Fei2、修改flashFeiFeiFei1、Upgrade2、DHCP3ap查询4、smartconfig接口5、TCP收包阻塞6、AT暗示。Wi-Fi成员标志归Wi-Fi所有权归©2014所有。保留所利。版本信 前 软件框 SDK提供的API接 定时器接 底层用户接 SPIFlash相关接 WIFI相关接 云端升级接 sniffer相关接 smartconfig接 网络连接相关接 通用接 TCP连接接 UDP接 AT接 jsonAPI接 数据结构定 定时器结 wifi参 station配置参 softap配置参 scan参 smartconfig结构 json相关结 json结 json宏定 espconn参 回调 驱动接 GPIO接口 PIN脚功能设置 GPIO输入输出相关 GPIO中断控制相关 GPIO中断处理函 双UART接口 i2cmaster接 附 ESPCONN编 模 说 步 TCPserver模 说 步 RTC接口使用示 前为需要在ESP8266物联网平台进行软件开发的嵌入式软件开发人员。软件框为了让用户不用关心底层网络,如WIFI、TCP/IP等的具体实现,仅专注于物联网应用的开发,SDK为用户提供了一套数据接收、发送函数接口,用户只始化功能在user_main.c文件中实现。voidusre_init(void)的作用是给用户提供一个初始化接口,也是上层程SDKjsonAPI,用户也可以采用自定义数据包格式,SDK提供的API定时器说明:定时器接口接口函数或宏以及所使用的参数结构体定义在(工程\lue\oap.h boolrepeat_flag——该定时是否重复无无Voidos_timer_setfn(ETSTimer*ptimer,ETSTimerFunc*pfunction,TESTimerFunc*pfunction无底层用户void无void无无无注意:1、同时定义USE_US_TIMER;2、system_timer_reinit需放在最开始,user_init第一句。无uint32idvoidsystem_deep_sleep(uint32uint32time_in_us设置休眠时间,单位:usXPD_DCDC0REXT_RSTBDeep)说明:后述init参数指esp_init_data_default.binuint8 option=0时,initbyte108deep_sleep_set_option(0)表示initbyte108deepsleep醒来后的是否作RF_CAL。deep_sleep_set_option(1)表示deepsleep醒来后和上电一样,要作RF_CAL,电流较)Voidsystem_set_os_print(uint8Uint8onoff/0x000x01代表打开打印功能无无Uint32无Uint32heapboolsystem_os_task(os_task_ttask,uint8prio,os_event_t*queue,uint8Uint8qlen——消息队列深度#define #defineTEST_QUEUE_LEN os_event_t*testQueue;voidtest_task(os_event_t{switch(e->sig)case}}voidvoid{}boolsystem_os_post(uint8prio,os_signal_tsig,os_param_tOs_signal_tsig——消息类型Os_param_tpar——消息参数void{}打印输出:sig_rxuint32功功能:获得RTC时间,单位:RTC时钟周举例:system_get_rtc_time()1010RTC时钟周期;system_rtc_clock_cali_proc5,表示一个RTC时钟周期为5us,则实际时间为10x5=50us。注意:deepsleep(或者system_restart)时,系统时间归零,但是RTC时间仍uint32 时间,单位:微秒。如果计时满,则归零重新计。uint32注意:RTC系列接口的使用示例,见附录。memoryuserdata512bytes|_____systemdata____ user 256 512 注意:RTCmemory只能4字节整存整取,函数中参数des_addrblocknumber,4字节每blockuserdata区起始位置,des_addr为256/4=64,savesize为存入数据的字节数。boolsystem_rtc_mem_write(uint32des_addr,void*src_addr,uint32uint32des_addrrtcmemory的位置,des_addr64void*src_addr——数据指针uint32save_size 用 |_____systemdata____ user 256 512 RTCmemory4src_addruserdata区起始位置,src_addr256/464,savesizeboolsystem_rtc_mem_read(uint32src_addr,void*des_addr,uint32src_addr—rtcmemory的位置,src_addrvoid*des_addruint32save_size功能:功能:UART0MTCKUART0RX,MTDOUART0TX。硬MTDO(U0CTS)MTCK(U0RTSUART0,从而避免上电时从UART0打印出ROMLOG。 system_uart_swapadcUint16system_adc_readAdcSPIFlashSPIFlash uint16sec0SpiFlashOpResultspi_flash_write(uint32uint32uint32 Flashuint32*src_addr-FlashUint32size写入数据长度SpiFlashOpResultspi_flash_read(uint32src_addr,uint32*des_addr,uint32size)uint32src_addr Flashuint32*des_addr– Uint32sizeenum{WIFI相关接uint8wifi_get_opmode#defineSTATIONAP_MODEboolwifi_set_opmode(uint8#defineSTATION_MODE0x01#defineSOFTAP_MODE0x02#defineSTATIONAP_MODE#defineSTATION_MODE0x01#defineSOFTAP_MODE0x02#defineSTATIONAP_MODE0x03True,成功;Falseboolwifi_station_get_config(structstation_configstructstation_config*config——wifistation接口参数指针True,成功;False由,不需要调用wifi_station_connect来进行连接。_set0boolwifi_station_set_config(structstation_configstructstation_config*config——wifistation接口参数指针True,成功;False功能:功能:wifistationboolTrue,成功;FalseboolTrue,成功;FalseSTATION_IDLE=boolwifi_station_scan(structscan_config*config,scan_done_cb_tscan_config{uint8* uint8;APAPuint8structscan_config*config–APNULL表示此项不设configchannelAP上扫描某指定AP。NULL,channel0,则在scan_done_cb_tcb-AP热点信息回调True,成功;False功能:功能:scan回调void*arg——获取的AP参数,argbss_info结构体指针来解析所扫描的structbssinfo结构体定义热点信息以链表形 无staticvoidICACHE_FLASH_ATTRscan_done(void*arg,STATUSstatus){if(status=={structbss_info*bss_link=(structbss_info*)arg;bss_link=bss_link->next.stqe_next;//ignore}}boolwifi_station_ap_number_set(uint8uint8ap_numberAP的数目(MAX:True,成功;False5structstation_configconfigAP5个,因此请传入数组大小为5。APstructstation_configinti=boolwifi_station_ap_change(uint8True,成功;FalseAPUint8wifi_station_get_current_ap_id无uint800uint8set0,关闭自动连接;1,开启自动连接。True,成功;False注意:dhcp默认开启。.boolTrue,成功;False注意:dhcp默认开启。.boolTrue,成功;Falseenumdhcp_statusenumdhcp_statusstructsoftap_config*config——wifisoftap接口参数指针(softapconfig说明)True,成功;Falseboolwifi_softap_set_config(structsoftap_configstructsoftap_config*config——wifisoftap接口参数指针(softapconfig说明)True,成功;Falsestructstation_info*无无void_station_info无无structstation_info*station=structstation_info*MAC2STR(station-:: station=}structstation_info*station=wifi_softap_get_station_info();:"MACSTR",ip:"IPSTR"\n",MAC2STR(station-stationstation=STAILQ_NEXT(station,}注意:dhcp默认开启。boolTrue,成功;False注意:dhcp默认开启。boolTrue,成功;FalseESP8266softAPdhcpserverIP地址的范围注意:必须在dhcpserver关闭的情况下设置。{uint32start_ip;uint32end_ip;True,成功;FalseESP8266softAPdhcpserver状态enumdhcp_statusenum注意:ESP8266softAP只支持bg。boolwifi_set_phy_mode(enumphy_modeenumphy_modemode–phy_mode{PHY_MODE_11GPHY_MODE_11G=True,成功;FalseESP8266物理层模式(802.11b/g/n)Enumphy_mode1B=1,PHY_MODE_11G=址boolwifi_get_ip_info(uint8if_index,structip_infouint8if_indexip信息的接口,其中STATION_IF为0x00SOFTAP_IFSOFTAP_IF0x01True,成功;Falseboolwifi_set_ip_info(uint8if_index,structip_infouint8 –stationipsoftAP#define#definestructip_info ipstructip_infoIP4_ADDR(&info.ip,192,168,3,IP4_ADDR(&mask,255,255,255,IP4_ADDR(&info.ip,10,10,10,IP4_ADDR(&info.gw,10,10,10,IP4_ADDR(&mask,255,255,255,True,成功;Falseboolwifi_set_macaddr(uint8if_index,uint8uint8 –stationmacsoftAP#defineuint8–maccharsofap_mac[6]={0x16,0x34,0x56,0x78,0x90,charsta_mac[6]={0x12,0x34,0x56,0x78,0x90,wifi_set_macaddr(STATION_IF,sta_mac);True,成功;Falsewifistationsoftap接口mac信息Boolwifi_get_macaddr(uint8if_index,uint8uint8if_indexmacSTATION_IF0x00,SOFTAP_IF为0x01。TrueTrue,成功;False功能:设置省电模式。设置为功能:设置省电模式。设置为注意:ESP8266仅在单station模式支持省电,共支持Modemsleep,lightsleep,deepsleepModemsleep模式。Deepsleep会即时休眠,请调用systemdeepsleep设置。Boolwifi_set_sleep_type(enumsleep_typeenumsleep_typetypeTrue,成功;FalseEnumsleep_typesleep_type{ uint8gpio_id——gpiouint8gpio_name——gpiomux#define#defineHUMITURE_WIFI_LED_IO_NUM云端升级uint80x00UPGRADE_FW_BIN10x01UPGRADE_FW_BIN2upgradeflagSDK底层会设置flag,上层如用户自行调用spi_flash_write实现云端升级,则需调用本接口设置为UPGRADE_FLAG_FINISHsystem_upgrade_reboot重启切换到新软uint8flag–#define#defineUPGRADE_FLAG_START#defineUPGRADE_FLAG_FINISH无无upgradeflaguint8#define#defineUPGRADE_FLAG_START#defineUPGRADE_FLAG_FINISHboolsystem_upgrade_start(structupgrade_server_infostructupgrade_server_info*serverserver相关的参数。voidsystem_upgrade_reboot无snifferuint8promiscuous——0,disable1,enable无wificallback无Uint8wifi_get_channelboolwifi_set_channel(uint8True,成功;FalsesmartconfigAPsmartconfig_start函数boolsmartconfig_start(sc_typetype,sc_callback_tsctypetype——选择使用哪种协议连接:AirKissESP-TOUCHsc_callback_tcb到passwordstructstationconfigTrueFalse,失败void{structstation_config*sta_conf= }说明:连上AP后,可调用本接口释放内存。boolTrueFalsesmartconfig_stop后调用本接口。smartconfig_stopsc_statustypedefHANNEL=0, } 通用接口:TCP和UDP均可以调用的接口。 Sin8Sin8espconn_delete(structespconn succeed,#defineESPCONN_OK0Erro,详见espconn.hErr_tespconn_gethostbyname(structespconnstructespconn*espconnip_addr_t*addr——ipdns_found_callbackfoundLOCALvoid tform_dns_found(constchar*name,ip_addr_t*ipaddr,void{structespconn*pespconn=(structespconn tform_dns_found*((uint8*)&ipaddr->addr),*((uint8*)&ipaddr->addr+*((uint8*)&ipaddr->addr+2),*((uint8*)&ipaddr->addr+}{ }uint32uint32功能功能 espconn_sent_callbackstructespconn*espconn succeed,#defineESPCONN_OK功能功能 espconn_recv_callbackstructespconn*espconnespconn_connect_callbackconnect_cb— succeed,#defineESPCONN_OKvoidespconn_sent_callback(void无voidespconn_recv_callback(void*arg,char*pdata,unsignedshortchar*pdata——接收数 参无callback用espconn_sent发送下一包数据。Sint8espconn_sent(structespconn*espconn,uint8*psent,uint16uint8*psent——sent数据指针 succeed,#defineESPCONN_OKTCPSin8espconn_accept(structespconnstructespconn*espconn——相应连接的控制块结 succeed,#defineESPCONN_OK0Erro,详见espconn.hSSLSint8espconn_secure_accept(structespconnstructespconn*espconn——相应连接的控制块结 succeed,#defineESPCONN_OK0Erro,详见espconn.h功功能:ESP8266作为TCPServer,设置超时断开连接的超时时长Sin8Sin8espconn_regist_time(structespconn*espconn,uint32interval,uint8 succeed,#defineESPCONN_OK0Erro,详见espconn.hSin8espconn_get_connection_info(structespconn*espconn,**pcon_info,uint8structespconn*espconn——相应连接的控制块结remot_info**pcon_infouint8typeflags succeed,#defineESPCONN_OK0Erro,详见espconn.hSint8espconn_connect(structespconn succeed,#defineESPCONN_OKVoidespconn_connect_callback(void无TCP连接的属性选择sint8espconn_set_opt(structespconn*espconn,uint8structespconn*espconnuint8uint8opt0,TCP2min1TCPnalgo succeed,#defineESPCONN_OK0Erro,详见espconn.hespconn_set_opt(espconn1)disconnectSin8espconn_disconnect(structespconn succeed,#defineESPCONN_OK0Erro,详见espconn.hTCP连接函数,成功连接时回 succeed,#defineESPCONN_OKTCP重连函数,出错时的回说明:reconnectcallback实际为出错处理回调,任何阶段reconnectcallback;用户可在reconnectcallback中自定义出错处理。espconn_connect_callbackstructespconn*espconnespconn_connect_callbackconnect_cb— succeed,#defineESPCONN_OK 断开TCP连接函数,断开连接成功时回espconn_connect_callbackespconn_connect_callbackconnect_cb— succeed,#defineESPCONN_OKTCP连接(SSSint8espconn_secure_connect(structespconn succeed,#defineESPCONN_OKSint8espconn_secure_sent(structespconn*espconn,uint8*psent,uint16uint8*psent——sent数据指针 succeed,#defineESPCONN_OK0Erro,详见espconn.h succeed,#defineESPCONN_OKuint8Sint8Sint8espconn_tcp_set_max_con(uint8uint8numTCP连接数的上限 succeed,#defineESPCONN_OKTCPserverSint8espconn_tcp_set_max_con_allow(structespconn*espconn,uint8structespconn*espconn——相应连接的控制块结uint8num succeed,#defineESPCONN_OKTCPByte左右的空间时候调用,且本接口可以反复调用。Sint8espconn_recv_hold(structespconnsucceed,#defineESPCONN_OKespconn参数对应的tcp对象.0-Sint8espconn_recv_unhold(structespconn succeed,#defineESPCONN_OK0UDPSin8espconn_create(structespconnstructespconn*espconn——相应连接的控制块结 succeed,#defineESPCONN_OK0Erro,详见espconn.hip_addr_t*host_ipip_addr_t*multicast_ip– succeed,#defineESPCONN_OK0Erro,详见espconn.hip_addr_t*host_ip——主机ipip_addr_t*multicast_ipip succeed,#defineESPCONN_OK0Erro,详见espconn.hATvoidvoidvoidat_cmd_array_regist(at_funcation*custom_at_cmd_arrar,uint32at_funcationat_funcation*custom_at_cmd_arrarATuint32cmd_numboolat_get_next_int_dec(char**p_src,int*result,int*char**p_src*p_srcatint*result-intint*err 13:只发现’-TRUE,正常解析到数字(数字省略时,仍然返回True,但错误码会为-Int32at_data_str_copy(char*p_dest,char**p_src,int32char*p_dest-char**p_src*p_srcATint32int32max_len失败,返回-1voidat_initvoidat_port_print(constcharconstchar*str-要输出的字符串jsonAPI说明:jsonparse相关接口函数或宏定义在(工程 \lude\son\sonparse.h \include\json\jsontree.h功能:功能:json解析初始化voidjsonparse_setup(structjsonparse_state*state,constcharstructjsonparse_state*state——jsonconstchar*json——json无Intjsonparse_next(structjsonparse_statestructjsonparse_state*state——json解析指针IntIntjsonparse_copy_value(structjsonparse_state*state,char*str,intintsize——缓存大小structjsonparse_state*state——json解析指针structjsonparse_state*state——json解析指针structjsonparse_state*state——json解析指针structjsonparse_state*state——json解析指针Intjsonparse_strcmp_value(structjsonparse_state*state,constcharstructjsonparse_state*state——jsonvoidjsontree_setup(structjsontree_contextstructstructjsontree_value*root,int(*structjsontree_context*js_ctx——jsonstructjsontree_value*root——根树元素指针int(*putchar)(int)——输入函数无voidjsontree_reset(structjsontree_contextstructjsontree_context*js_ctx——json格式树指针无constchar*jsontree_path_name(conststructjsontree_cotext*js_ctx,intstructjsontree_context*js_ctx——json格式树指char*——参数指voidjsontree_write_int(conststructjsontree_context*js_ctx,intstructjsontree_context*js_ctx——json格式树指无voidjsontree_write_int_array(conststructjsontree_context*js_ctx,constint*text,uint32length)structjsontree_context*js_ctx——json格式树指int*textuint32length——数组长无voidjsontree_write_string(conststructjsontree_context*js_ctx,conststructstructjsontree_context*js_ctx——json无structjsontree_context*js_ctx——json格式树指针structjsontree_value*jsontree_find_next(structjsontree_context*js_ctx,inttype)structjsontree_context*js_ctx——json格式树指数据结构定时器结typedeftypedefvoidETSTimerFunc(voidtypedefstruct_ETSTIMER_}wifistructstruct{uint8uint8buint8b。typedeftypedefenum=}_struct{uint8uint8uint8uint8uint8 //100~60000ms,defaultstructsoftap_config_len0_len0structstruct{uint8uint8;;uint8uint8show_hiddenstruct{o)u8 u8channel;s8rssi;u8uint8is_hiddenAP是否为隐藏的smartconfigtypedeftypedef{NNEL= }typedefPTOUCH=0,json相关结structstruct{uint8_tstruct{constcharstructjsontree_valuestructjsontree_contextuint16_tindex[JSONTREE_MAX_DEPTH];uint8_tdepth;uint8_tpath;intstruct{uint8_tint(*output)(structjsontree_contextint(*set)(structjsontree_context*js_ctx,structjsonparse_statestructjsontree_objectuint8_tuint8_tstructjsontree_pairstruct{uint8_ttype;uint8_tstructjsontree_valuestruct{constchar*json;intpos;intlen;intvstart;intvlen;charerror;char \staticstructjsontree_pairjsontree_pair_##name[]={ staticstructjsontree_objectname= sizeof(jsontree_pair_##name)/sizeof(structjsontree_pair), jsontree_pair_##name}#defineJSONTREE_PAIR_ARRAY(value)(structjsontree_value*)(value) \staticstructjsontree_value*jsontree_value_##name[]={ }; staticstructjsontree_arrayname={ sizeof(jsontree_value_##name)/sizeof(structjsontree_value*), jsontree_value_##name}espconn/**callbackprototypetoinformabouteventsforaespconntypedefvoid(*espconn_recv_callback)(void*arg,char*pdata,unsignedshorttypedefvoid(*espconn_callback)(void*arg,char*pdata,unsignedshortlen);typedefvoid(*espconn_connect_callback)(void*arg);typedefvoid*espconn_handle;typedefstruct_esp_tcp{ charipaddr[4];espconn_connect_callbackreconnect_callback;}typedefstruct{int_port;}/**Protocol
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省黄石市2024年中考数学模拟考试试卷附答案
- 美容院顾客反馈收集与分析
- 科技园区企业创新能力归类分析
- 高一化学二第一章第三节化学键练习
- 2024高中地理第3章区域自然资源综合开发利用第1节第1课时资源开发条件能源基地建设学案新人教版必修3
- 2024高中物理第三章磁场课时25运动电荷在磁场中受到的力训练含解析新人教版选修3-1
- 2024高中语文第四单元创造形象诗文有别方山子传训练含解析新人教版选修中国古代诗歌散文欣赏
- 2024高考化学一轮复习专练52实验综合应用一含解析新人教版
- 2024高考化学一轮复习第一部分考点38晶体结构与性质强化训练含解析
- 2024高考化学一轮复习课练29化学实验常用仪器和基本操作含解析
- 2024年6月英语六级考试真题及答案(第2套)
- 职业院校技能大赛(高职组)市政管线(道)数字化施工赛项考试题库(含答案)
- 危险化学品目录(2024版)
- 华为经营管理-华为的股权激励(6版)
- 2024保密知识教育考试题及答案(基础+提升)
- 2024-2025学年新教材高中数学第八章立体几何初步8.6.2直线与平面垂直一同步练习含解析新人教A版必修第二册
- 汉语拼音默写表及拼读专练
- 肌力的评定与护理
- 工业机器人论文3000字(合集4篇)
- 【中小企业融资难问题探究的国内外综述5800字】
- DL∕T 2138-2020 电力专利价值评估规范
评论
0/150
提交评论