程序运用初级篇2c-sdk espressif iot编程手册-v0.9_第1页
程序运用初级篇2c-sdk espressif iot编程手册-v0.9_第2页
程序运用初级篇2c-sdk espressif iot编程手册-v0.9_第3页
程序运用初级篇2c-sdk espressif iot编程手册-v0.9_第4页
程序运用初级篇2c-sdk espressif iot编程手册-v0.9_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Espressif IoT SDK 编程手册 ERNAL PUBLIC1 / 90Espressif SystemsJanuary 23, 2015SusReleasedCurrent verV0.9.5AuthorFei YuCompletion Date2015.01.22ReviewerJG WuCompletion Date2015.01.22版本信息2 / 90Espressif SystemsJanuary 23, 2015日期版本撰写人修改说明2013.12.250.1JG Wu初稿2013.12.250.1.1Han Liu修订json 处理 API2014.1.150.2JG

2、 Wu增加、修改部分接口配置函数2014.1.290.3Han Liu增加 cnt/server 接口函数2014.3.200.4JG Wu / Han Liu增双 uart 接口;增加i2c master 接口;修改 cnt/server 接口函数;增加加密接口; 5.增加 upgrade 接口2014.4.170.5JG Wu / Han Liu修改 espconn 接口;增加 gpio 接口 api 说明;增加其他说明;2014.5.140.6JG Wu增加若干API2014.6.180.7JG Wu增加 dns 接口;修改、添加用户参数保存接口;添加任务接口;添加 softap 模式下

3、获取已连设备信息接口;添加打印系统内存空间及获取可用 heap 区大小接口;其他2014.7.100.8Fei Yu修改 upgrade 接口;增加开关打印接口;增加 sion 连接状态查询接口增加SSL 加密 Server 接口;修改加密 cnt 接口名称2014.8.130.9Fei Yu1.修改 espconn 接口; 2.增加 sniffer 接口; 3.增加 chip 查询接口;4.增加获取、修改 mac&ip 接口;2014.9.230.9.1Fei Yu1、增加休眠接口2、修改 flash 读写接口3、连接过 AP4、修改 UDP 接口2014.11.070.9.3Fei Yu1

4、、新增 DHCP 接口免责和公告本文中的信息,包括供参考的 URL 地址,变更,恕不另行通知。文档“按现状”提供,不负任何担保责任,包括对适销性、适用于特定用途或非性的任何担保,和任何提案、规格或样品在他处提到的任何担保。本文档不负任何责任,包括使用本文档内信息产生的任何专利权行为的责任。本文档在此未以反言或其他方式授予任何知识使用,不管是明示还是暗示。成员标志归Wi-Fi所有。Wi-Fi文中提到的所有商标名称、商标和商标均属其各自所有者的,特此。归 2014所有。保留所利。3 / 90Espressif SystemsJanuary 23, 20152、新增 RTC 接口3、新增 ADC 接

5、口4、修改 sion、softAP 结构体2014.12.190.9.4Fei Yu1、新增省电控制接口;2、新增igmp 接口;2015.01.220.9.5Fei Yu新增如下接口1、Upgrade 接口;2、DHCP 相关接口;3、连接过的 ap 查询 4、smart config 接口 5、TCP 收包阻塞6、AT 接口目录版本信息2目录41.2.3.前言9框架10SDK 提供的 API 接口11定时器接口11os_timer_arm11os_timer_disarm11os_timer_setfn12底层用户接口12system_restore12system_restart12sy

6、stem_timer_reinit13system_get_chip_id13system_deep_sleep13system_deep_sleep_set_option143.1.3.1.1.3.1.2.3.1.3.3.2.3.2.1.3.2.2.3.2.3.3.2.4.3.2.5.3.2.6.3.2.7.3.2.8.3.2.9.3.2.10.3.2.11.3.2.12.3.2.13.3.2.14.3.2.15.3.2.16.3.2.17.3.2.18.3.3.3.3.1.3.3.2.3.3.3.3.3.4.3.4.3.4.1.3.4.2.3.4.3.3.4.4.3.4.5.3.4.6.s

7、ystem_set_os_pr.15system_pr_meminfo15system_get_free_heap_size15system_os_task16system_os_t17system_get_time17system_get_rtc_time18system_rtc_clock_cali_proc18system_rtc_mem_write19system_rtc_mem_read19system_uart_swap20system_adc_read20SPI Flash 相关接口21spi_flash_get_id21spi_flash_erase_sector21spi_f

8、lash_write21spi_flash_read22WIFI 相关接口23wifi_get_opmode23wifi_set_opmode23wifi_swifi_s wifi_s wifi_sion_get_config24ion_set_config24ion_connect24ion_disconnect254 / 90Espressif SystemsJanuary 23, 20153.4.7.3.4.8.3.4.9.3.4.10.3.4.11.3.4.12.3.4.13.3.4.14.3.4.15.3.4.16.3.4.17.3.4.18.3.4.19.3.4.20.3.4.21

9、.3.4.22.3.4.23.3.4.24.3.4.25.3.4.26.3.4.27.3.4.28.3.4.29.3.4.30.3.4.31.3.4.32.3.4.33.3.4.34.3.4.35.3.4.36.3.5.3.5.1.3.5.2.3.5.3.3.5.4.3.5.5.3.6.3.6.1.3.6.2.3.6.3.3.6.4.3.7.3.7.1.wifi_swifi_sion_get_connect_sus25ion_scan26scan_done_cb_t27wifi_swifi_s wifi_s wifi_s wifi_s wifi_s wifi_s wifi_s wifi_sio

10、n_ap_number_set27ion_get_ap_info28ion_ap_change28ion_get_current_ap_id28ion_get_auto_connect29ion_set_auto_connect29ion_dhcpc_start30ion_dhcpc_stop30ion_dhcpc_sus30wifi_softap_get_config31wifi_softap_set_config31wifi_softap_get_sion_info31wifi_softap_free_sion_info32wifi_softap_dhcps_start33wifi_sof

11、tap_dhcps_stop33wifi_softap_set_dhcps_lease33wifi_softap_dhcps_sus34wifi_set_phy_mode34wifi_get_phy_mode35wifi_get_ip_info35wifi_set_ip_info36wifi_set_macaddr37wifi_get_macaddr37wifi_set_sleep_type38wifi_get_sleep_type38wifi_swifi_sus_led_install39us_led_uninstall39云端升级接口40system_upgrade_userbin_che

12、ck40system_upgrade_flag_set40system_upgrade_flag_check41system_upgrade_start41system_upgrade_reboot41sniffer 相关接口42wifi_promiscuous_enable42wifi_set_promiscuous_rx_cb42wifi_get_channel42wifi_set_channel43smart config 接口43smartconfig_start435 / 90Espressif SystemsJanuary 23, 20153.7.2.3.7.3.3.8.3.8.1

13、.smartconfig_stop44get_smartconfig_sus45网络连接相关接口45通用接口453.8.1.1.3.8.1.2.3.8.1.3.3.8.1.4.3.8.1.5.3.8.1.6.3.8.1.7.3.8.1.8.espconn_delete45espconn_gethostbyname46espconn_port47espconn_regist_sentcb47espconn_regist_recvcb48espconn_sent_callback48espconn_recv_callback49espconn_sent49连接接口50espconn_accept5

14、0espconn_secure_accept50espconn_regist_time50espconn_get_connection_info51espconn_connect52espconn_connect_callback52espconn_set_opt52espconn_disconnect53espconn_regist_connectcb53espconn_regist_reconcb54espconn_regist_disconcb54espconn_secure_connect55espconn_secure_sent55espconn_secure_disconnect5

15、6espconn_tcp_get_max_con56espconn_tcp_set_max_con56espconn_tcp_get_max_con_allow57espconn_tcp_set_max_con_allow57espconn_recv_hold58espconn_recv_unhold583.8.2.TCP3.8.2.1.3.8.2.2.3.8.2.3.3.8.2.4.3.8.2.5.3.8.2.6.3.8.2.7.3.8.2.8.3.8.2.9.3.8.2.10.3.8.2.11.3.8.2.12.3.8.2.13.3.8.2.14.3.8.2.15.3.8.2.16.3.8

16、.2.17.3.8.2.18.3.8.2.19.3.8.2.20.UDP 接口593.8.3.3.8.3.1.3.8.3.2.3.8.3.3.espconn_create59espconn_igmp_join59espconn_igmp_leave59AT 接口61at_response_ok61at_response_error61at_cmd_array_regist613.9.3.9.1.3.9.2.3.9.3.3.9.4.3.9.5.at_get_next_dec62at_data_str_copy626 / 90Espressif SystemsJanuary 23, 20153.9

17、.6.3.9.7.3.10.3.10.1.3.10.2.3.10.3.3.10.4.3.10.5.3.10.6.3.10.7.3.10.8.3.10.9.3.10.10.3.10.11.3.10.12.3.10.13.3.10.14.3.10.15.3.10.16.at_init63at_port_pr.63json API 接口64jsonparse_setup64jsonparse_next64jsonparse_copy_value64jsonparse_get_value_as_.65jsonparse_get_value_as_long65jsonparse_get_len65jso

18、nparse_get_value_as_type66jsonparse_strcmp_value66jsontree_set_up66jsontree_reset67jsontree_path_name67jsontree_write_jsontree_write_.68_array68jsontree_write_string68jsontree_pr_next69jsontree_find_next69数据结构定义70定时器结构70wifi 参数70sion 配置参数70softap 配置参数71scan 参数71smart config 结构体72json 相关结构73json 结构73

19、json 宏定义74espconn 参数75回调 function75espconn75驱动接口78GPIO 接口 API78PIN 脚功能设置宏78gpio_output_set78GPIO 输入输出相关宏79GPIO 中断控制相关宏794.4.1.4.2.4.2.1.4.2.2.4.2.3.4.3.4.4.4.3.1.4.3.2.4.5.4.4.14.4.25.5.1.5.1.1.5.1.2.5.1.3.5.1.4.5.1.5.5.1.6.5.2.5.2.1.5.2.2.gpio_pin_r_se_set80GPIO 中断处理函数80双 UART 接口 API80uart_init81ua

20、rt0_tx_buffer817 / 90Espressif SystemsJanuary 23, 20155.2.3.5.3.5.3.1.5.3.2.5.3.3.5.3.4.5.3.5.5.3.6.5.3.7.5.3.8.5.3.9.5.4.5.4.1.5.4.2.5.4.3.5.4.4.5.4.5.5.4.6.uart0_rx_r_handler82i2c master 接口82i2c_master_gpio_init82i2c_master_init83i2c_master_start83i2c_master_stop83i2c_master_send_ack84i2c_master_s

21、end_nack84i2c_master_checkAck84i2c_master_readByte85i2c_master_writeByte85.86_init86_start86_set_duty86_set_freq87_get_duty87_get_freq87附录88ESPCONN 编程88TCP cnt 模式88说明88步骤88TCP server 模式88说明88步骤89RTC 接口使用示例896.A.A.1.A.1.1.A.1.2.A.2.A.2.1.A.2.2.B.8 / 90Espressif SystemsJanuary 23, 20151. 前言基于 ESP8266

22、物联网的 SDK 为用户提供了一个简单、快速、高效开发物联网产品的。本文旨在介绍该 SDK 的基本框架,以及相关的 API 接口。主要的阅读对象为需要在 ESP8266 物联网进行开发的开发。9 / 90Espressif SystemsJanuary 23, 20152.框架为了让用户不用关心底层网络,如WIFI、TCP/IP 等的具体实现,仅专注于物联网应用的开发,SDK 为用户提供了一套数据接收、发送函数接口,用户只需利用相应接口即可完成网络数据的收发。ESP8266 物联网的所有网络功能均在库中实现,对用户不透明,用户初始化功能在 user_main.c 文件中实现。函数 void u

23、sre_init(void)的作用是给用户提供一个初始化接口,也是上层程序,用户可在该函数内增加硬件初始化、网络参数设置、定时器初始化等功能。SDK 中提供了对 json 包的处理 API,用户也可以采用自定义数据包格式,自行对数据进行处理。10 / 90Espressif SystemsJanuary 23, 20153. SDK 提供的 API 接口3.1. 定时器接说明:定时器接口接口函数或宏以及所使用的参数结构体定义在(工程目录includeosapi.h)。3.1.1. os_timer_arm3.1.2. os_timer_disarm11 / 90Espressif System

24、sJanuary 23, 2015功能:取消定时器定时Void os_timer_disarm(ETSTimer *ptimer)ETSTimer *ptimer定时器结构(该结构体参见 4.1 说明)返回:无功能:初始化定时器Voidos_timer_arm(ETSTimer*ptimer,u32_tmilliseconds,bool repeat_flag)ETSTimtimer定时器结构(该结构体参见 4.1 说明)u32_t milliseconds定时时间,毫秒bool repeat_flag该定时是否重复返回:无口3.1.3. os_timer_setfn3.2. 底层用户接3.2

25、.1. system_restore3.2.2. system_restart12 / 90Espressif SystemsJanuary 23, 2015功能:重启void system_restart(void)功能:恢复出厂设置void system_restore(void)无返回:无口功能:设置定时器回调函数Void os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void*parg)ETSTimer *ptimer定时器结构(该结构体参见 4.1 说明) TESTimerFunc *pfunction定时器回调函

26、数 void*parg回调函数参数返回:无3.2.3. system_timer_reinit3.2.4. system_get_chip_id3.2.5. system_deep_sleep13 / 90Espressif SystemsJanuary 23, 2015功能:设置进入 deep sleep 模式,每休眠多长时间(us)唤醒一次。唤醒以后整个系统重新跑,程序从 user_init 开始。功能:获取idu32 system_get_chip_id(void)无返回:id 值功能:当需要使用 us 级 timer 时,需要重新初始化 timer。注意:1、同时定义 USE_US_T

27、IMER;2、system_timer_reinit 需放在最开始,user_init 第一句。Void system_timer_reinit (void)无返回:无无返回:无3.2.6. system_deep_sleep_set_option14 / 90Espressif SystemsJanuary 23, 2015功能:在 deep sleep 前调用,用以在 deep sleep 醒来后判断作什么操作。说明:后述 init 参数指 esp_init_data_default.binbool system_deep_sleep_set_option(u8 option)u8 opt

28、ion- option=0 时,init 参数 byte 108 有效,option0 时,init 参数的 byte 108 无效。具体如下:deep_sleep_set_option(0) 表示由 init 参数 byte 108 控制 deep sleep 醒来后的是否作 RF_CAL。deep_sleep_set_option(1) 表示 deep sleep 醒来后和上电一样,要作RF_CAL,电流较大。deep_sleep_set_option(2) 表示 deep sleep 醒来后不作 RF_cal,电流较小。 deep_sleep_set_option(4) 表示 deep

29、sleep 醒来后,不打开 RF,和 modemsleep 一样,电流最小。返回:True,成功;False,失败void system_deep_sleep(u32 time_in_us)u32 time_in_us 设置休眠时间,:us返回:无注意:硬件上需将 XPD_DCDC 通过 0R 连接到 EXT_RSTB,用作 Deep sleep唤醒。system_deep_sleep(0) 则不醒,可通过外部 GPIO 拉低 RST 脚唤醒3.2.7. system_set_os_pr3.2.8. system_pr_meminfo3.2.9. system_get_free_heap_si

30、ze15 / 90Espressif SystemsJanuary 23, 2015功能:获取系统可用 heap 区空间大小U32 system_get_free_heap_size(void)无功能:打印系统内存空间分配,打印信息包括 data/rodata/bss/heapVoid system_pr_meminfo (void)无返回:无功能:开关打印 log 功能。Void system_set_os_pr(u8 onoff)U8 onoff 打开/关闭打印功能;0 x00 代表关闭打印功能0 x01 代表打开打印功能默认为打开打印功能。返回:无3.2.10.system_os_tas

31、k16 / 90Espressif SystemsJanuary 23, 2015功能:建立系统任务bool system_os_task(os_task_t task, u8 prio, os_event_t *queue, u8 qlen)Os_task_t task任务函数U8 prio任务优先级,当前支持 3 个邮件级的任务 0/1/2,0 最低Os_event_t *queue消息队列指针 U8 qlen消息队列深度返回:True,成功;False,失败示例:#define SIG_RX0#define TEST_QUEUE_LEN4 os_event_t *testQueue;vo

32、id test_task (os_event_t *e)switch (e-sig) case SIG_RX:os_prf(“sig_rx %cn”, (char)e-par); break;default:break;返回:U32 可用 heap 区大小3.2.11.system_os_t3.2.12.system_get_time17 / 90Espressif SystemsJanuary 23, 2015功能:获得系统时间,:微秒 us。u32 system_get_time(void)功能:向任务发送消息bool system_os_t (u8 prio, os_signal_t s

33、ig, os_param_t par)U8 prio任务优先级,与建立时的优先级对应 Os_signal_t sig消息类型Os_param_t par消息参数返回:True,成功;False,失败结合上一节的示例:void task_t(void)system_os_t(USER_TASK_PRIO_0, SIG_RX, a);打印输出:sig_rx avoid task_init(void)testQueue=(os_event_t*)os_malloc(sizeof(os_event_t)*TEST_QUEUE_LEN); system_os_task(test_task,USER_TA

34、SK_PRIO_0,testQueue,TEST_QUEUE_ LEN);3.2.13.system_get_rtc_time3.2.14.system_rtc_clock_cali_proc18 / 90Espressif SystemsJanuary 23, 2015功能:RTC 校准函数。u32 system_rtc_clock_cali_proc(void)Null返回:返回 RTC 时钟周期。us,bit11 到 bit0 为小数部分。注意:RTC 系列接口的使用示例,见附录。功能:获得 RTC 时间,:RTC 时钟周期。举例:system_get_rtc_time() 返回 10,

35、表示当前走了 10 个 RTC 时钟周期; system_rtc_clock_cali_proc 返回 5,表示一个 RTC 时钟周期为 5 us,则实际时间为 10 x 5 = 50 us。注意:deep sleep(或者 system_restart)时,系统时间归零,但是 RTC 时间仍然继续。u32 system_get_rtc_time(void)Null返回:RTC 时间,:微秒。如果计时满,则归零重新计。Null返回:系统时间,:微秒。如果计时满,则归零重新计。3.2.15.system_rtc_mem_write3.2.16.system_rtc_mem_read19 / 90

36、Espressif SystemsJanuary 23, 2015功能: RTC memory 中的数据,提供如下图中 user data 段共 512 bytes 给用户 数据。|_ _ _ _ _system data _ _ _ _ _|_ _ _ _ _ _ _ _ _ user data|256 bytes|512 bytes|注意: RTC memory 只能 4 字节整存整取,函数中的参数 src_addr 为 block number,4 字节每 block,因此若 上图 user data 区起始位置,src_addr 为 256/4 = 64,save size 为存入数据

37、的字节数。bool system_rtc_mem_read (u32 src_addr, void * des_addr, u32功能:由于 deep sleep 时,仅 RTC 在工作,用户需要,可将数据存入 RTC memory 中。提供如下图中 user data 段共 512 bytes 供用户数据。|_ _ _ _ _system data _ _ _ _ _|_ _ _ _ _ _ _ _ _ user data|256 bytes|512 bytes|注意: RTC memory 只能 4 字节整存整取,函数中参数 des_addr 为 block number,4 字节每blo

38、ck,因此若写入上图 user data 区起始位置,des_addr 为 256/4 = 64,save size 为存入数据的字节数。bool system_rtc_mem_write (u32 des_addr, void * src_addr, u32save_size)u32 des_addr 写入 rtc memory 的位置,des_addr =64 void * src_addr 数据指针u32 save_size 数据长度,byte返回:True, 成功;False,失败。3.2.17.system_uart_swap3.2.18.system_adc_read20 / 90

39、Espressif SystemsJanuary 23, 2015功能:adc 的值。U16 system_adc_read (void)参数:NULL返回:Adc 的值功能:UART0 转换。将 MTCK 作为 UART0 RX,MTDO 作为 UART0 TX。硬件上也从 MTDO(U0CTS) 和 MTCK(U0RTS) 连出 UART0,从而避免上电时从 UART0 打印出 ROM LOG。voidsystem_uart_swap (void)参数:NULL返回:NULLsave_size)u32 src_addr rtc memory 的位置,src_addr =64 void *

40、des_addr 数据指针u32 save_size 数据长度,byte返回:True, 成功;False,失败。3.3. SPI Flash 相关接3.3.1. spi_flash_get_id3.3.2. spi_flash_erase_sector3.3.3. spi_flash_write21 / 90Espressif SystemsJanuary 23, 2015功能:将数据存到 Flash。说明:flash 读写操作的介绍,详见文档“Espressif IOT Flash 读写说明”。功能:擦除 Flash 的某个扇区。说明:flash 读写操作的介绍,详见文档“Espressi

41、f IOT Flash 读写说明”。SpiFlashOpResultspi_flash_erase_sector (u16 sec)参数:u16 sec 扇区号,从扇区 0 开始计数,每扇区 4KB返回:Typedef enum SPI_FLASH_RESULT_OK, SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUTSpiFlashOpResult;功能:获取 spi flash id。U32 spi_flash_get_id (void)参数:Null返回:SPI Flash id口3.3.4. spi_flash_read22 / 90Espr

42、essif SystemsJanuary 23, 2015功能: 从 flash数据。说明:flash 读写操作的介绍,详见文档“Espressif IOT Flash 读写说明”。SpiFlashOpResult spi_flash_read(u32 src_addr, u32 * des_addr, u32 size)参数:u32 src_addr-Flash 的地址,起始位置。u32 * des_addr 到数据的指针。U32 size -数据长度返回:Typedef enumSPI_FLASH_RESULT_OK,SpiFlashOpResult spi_flash_write (u3

43、2 des_addr, u32 *src_addr, u32 size)参数:u32 des_addr- 写入 Flash 的地址,起始位置。u32 *src_addr - 写入 Flash 的数据指针。U32 size - 写入数据长度返回:Typedef enum SPI_FLASH_RESULT_OK, SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUTSpiFlashOpResult;3.4. WIFI 相关接3.4.1. wifi_get_opmode3.4.2. wifi_set_opmode23 / 90Espressif Systems

44、January 23, 2015功能:设置 wifi 工作模式为 SION、SOFTAP、SION+SOFTAP说明:在 esp_iot_sdk_v0.9.2 之前版本,本接口调用后,需要重启生效;v0.9.2(含)之后版本,无需重启即可生效。bool wifi_set_opmode (u8 opmode)u8 opmodewifi 工作模式具体如下:功能:获取 wifi 工作模式u 8 wifi_get_opmode (void)无返回:wifi 工作模式。#define S ION_MODE 0 x01 #define SOFTAP_MODE 0 x02 #define S IONAP_M

45、ODE 0 x03口SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUTSpiFlashOpResult;3.4.3. wifi_sion_get_config3.4.4. wifi_sion_set_config3.4.5. wifi_sion_connect24 / 90Espressif SystemsJanuary 23, 2015功能:wifi 的 sion 接口连接所配置的路由功能:设置 wifi 的 sion 接口参数。注意:如果在 user_init 中调用 wifi_sion_set_config,底层会自动连接对应路由,不需要调用 w

46、ifi_sion_connect 来进行连接。请注意 sion_config.b_set 参数一般需初始化为 0。bool wifi_sion_set_config (struct sion_config *config)struct sion_config *configwifi 的 sion 接口参数指针返回:True ,成功;False ,失败功能:获取 wifi 的 sion 接口参数bool wifi_sion_get_config (struct sion_config *config)struct sion_config *configwifi 的 sion 接口参数指针返回:T

47、rue ,成功;False ,失败#define S ION_MODE 0 x01 #define SOFTAP_MODE 0 x02 #define S IONAP_MODE 0 x03返回:True ,成功;False ,失败3.4.6. wifi_sion_disconnect3.4.7. wifi_sion_get_connect_sus25 / 90Espressif SystemsJanuary 23, 2015功能:获取 wifi sion 接口连接 AP 的状态u8 wifi_sion_get_connect_sus (void)无返回:enumSION_IDLE = 0,SI

48、ON_CONNECTING,SION_WRONG_PASSWORD,功能:wifi 的 sion 接口断开所连接的路由bool wifi_sion_disconnect(void)无返回:True ,成功;False ,失败注意:如果连 接 过路由, 请 先 wifi_sion_disconnect , 再 调用 wifi_sion_connect。bool wifi_sion_connect(void)无返回:True ,成功;False ,失败3.4.8. wifi_sion_scan26 / 90Espressif SystemsJanuary 23, 2015功能:获取 AP 热点信息

49、bool wifi_sion_scan (struct scan_config *config, scan_done_cb_t cb);结构体:struct scan_configu8 *;/ AP 的u8 *b;/ AP 的 bu8 channel;/扫描某特定信道u8 show_hidden;/是否扫描隐藏的AP;struct scan_config *config 扫描 AP 的相关参数,传 NULL 表示此项不设限。例如,若 config 传 NULL,则扫描获取所有 AP 的信息;若 config 中、b传 NULL,仅设置 channel,则扫描该特定 channel 上的 AP

50、信息。若 config 中指定,b为 NULL,channel 为 0,则在所有信道上扫描某指定 AP。scan_done_cb_t cb - 获取 AP 热点信息回调function返回:True ,成功;False ,失败S ION_NO_AP_FOUND, S ION_CONNECT_FAIL, S ION_GOT_IP;3.4.9. scan_done_cb_t3.4.10.wifi_sion_ap_number_set27 / 90Espressif SystemsJanuary 23, 2015功能:设置 ESP8266 sion 最多可几个 AP 的信息bool wifi_sio

51、n_ap_number_set (u8 ap_number);功能:scan 回调functionvoid scan_done_cb_t (void *arg, SUS sus);void *arg获取的 AP 热点信息 参数,arg 指针需要转换为 struct bss_info 结构体指针来 所扫描的 AP 信息,AP 热点信息以链表形式 参见 struct bss info 结构体定义)SUS sus获取结果返回:无示例:wifi_sion_scan(&config, scan_done); sic void ICACHE_FLASH_ATTR scan_done(void *arg,

52、SUS sus)if (sus = OK)struct bss_info *bss_link = (struct bss_info *)arg; bss_link = bss_link-next.stqe_next;/ignore3.4.11.wifi_sion_get_ap_info3.4.12.wifi_sion_ap_change3.4.13.wifi_sion_get_current_ap_id28 / 90Espressif SystemsJanuary 23, 2015功能:当前正在使用第几号的SP8266 每配置连接一个 AP,会进行功能:ESP8266 sion 切换到第几号

53、AP 配置进行连接bool wifi_sion_ap_change (u8 current_ap_id);u8 current_ap_id第几号 AP 配置。从 0 开始计数。返回:True ,成功;False ,失败功能:获取 ESP8266 sion 曾经连接过的 AP 的信息,最多5 个。u8 wifi_sion_get_ap_info(struct sion_config config)参数:struct sion_config config 获取的所有 AP 连接信息,最多 5 个,因此请传入数组大小为 5。返回:实际的 AP 信息个数。示例:struct sion_config c

54、onfig5;i = wifi_sion_get_ap_info(&config);u8 ap_number 最多可AP 的数目(MAX: 5)。返回:True ,成功;False ,失败3.4.14.wifi_sion_get_auto_connect3.4.15.wifi_sion_set_auto_connect29 / 90Espressif SystemsJanuary 23, 2015功能:设置 ESP8266 sion 上电是否自动连接已的 AP (路由)注意:此 api 如果在 user_init 中调用,则当前这次上电就生效;如果在其他地方调用,则下一次上电生效。bool w

55、ifi_sion_set_auto_connect(u8 set)u8 set 是否自动连接;0,关闭自动连接;1,开启自动连接。返回:True ,成功;False ,失败功能:查询 ESP8266 sion 上电是否会自动连接已的 AP (路由)u8 wifi_sion_get_auto_connect(void)Null返回:0 ,不自动连接; 非 0 ,自动连接,从 0 开始计数,这样,如果当前 AP 无法成功联网时,ESP8266 会自动切换到下一个 AP 进行连接。U8 wifi_sion_get_current_ap_id ();无返回:当前使用的 A,即当前 AP 为 ESP82

56、66的第几号配置信息。3.4.16.wifi_sion_dhcpc_start3.4.17.wifi_sion_dhcpc_stop3.4.18.wifi_sion_dhcpc_sus30 / 90Espressif SystemsJanuary 23, 2015功能:查询 ESP8266 sion dhcp cnt 状态enum dhcp_sus wifi_sion_dhcpc_sus(void)Null返回:enum dhcp_sus 功能:关闭 ESP8266 sion dhcp cnt.注意:dhcp 默认开启。bool wifi_sion_dhcpc_stop(void)Null返回

57、:True ,成功;False ,失败功能:开启 ESP8266 sion dhcp cnt.注意:dhcp 默认开启。bool wifi_sion_dhcpc_start(void)Null返回:True ,成功;False ,失败3.4.19.wifi_softap_get_config3.4.20.wifi_softap_set_config3.4.21.wifi_softap_get_sion_info31 / 90Espressif SystemsJanuary 23, 2015功能:获取 softap 模式下连接的 sion 设备信息,包括 mac 和 ipstruct sion_

58、info * wifi_softap_get_sion_info(void)功能:设置 wifi 的 softap 接口参数bool wifi_softap_set_config (struct softap_config *config)struct softap_config *configwifi 的 softap 接口参数指针(详见结构体softap config 说明)返回:True ,成功;False ,失败功能:设置 wifi 的 softap 接口参数bool wifi_softap_get_config(struct softap_config *config)struct

59、softap_config *configwifi 的 softap 接口参数指针(详见结构体softap config 说明)返回:True ,成功;False ,失败DHCP_STOPPED, DHCP_STARTED;3.4.22.wifi_softap_free_sion_info32 / 90Espressif SystemsJanuary 23, 2015功能:由于调用 wifi_softap_get_sion_info 函数生成的 struct sion_info空间void wifi_softap_free_sion_info (void)无返回:无获取 mac、ip 信息示例

60、,注意资源:方法一:struct sion_info * sion = wifi_softap_get_sion_info(); struct sion_info * next_sion;while(sion)os_prf(b:MACSTR,ip:IPSTRn, MAC2STR(sion-b), IP2STR(&sion-ip);next_sion = STAILQ_NEXT(sion, next); os_free(sion);/直接sion = next_sion;方法二:struct s ion_info * sion = wifi_softap_get_sion_info(); whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论