程序運(yùn)用初級(jí)篇2c-sdk espressif iot編程手冊(cè)-v0.9_第1頁
程序運(yùn)用初級(jí)篇2c-sdk espressif iot編程手冊(cè)-v0.9_第2頁
程序運(yùn)用初級(jí)篇2c-sdk espressif iot編程手冊(cè)-v0.9_第3頁
程序運(yùn)用初級(jí)篇2c-sdk espressif iot編程手冊(cè)-v0.9_第4頁
程序運(yùn)用初級(jí)篇2c-sdk espressif iot編程手冊(cè)-v0.9_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Espressif IoT SDK 編程手冊(cè) 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增加、修改部分接口配置函數(shù)2014.1.290.3Han Liu增加 cnt/server 接口函數(shù)2014.3.200.4JG Wu / Han Liu增雙 uart 接口;增加i2c master 接口;修改 cnt/server 接口函數(shù);增加加密接口; 5.增加 upgrade 接口2014.4.170.5JG Wu / Han Liu修改 espconn 接口;增加 gpio 接口 api 說明;增加其他說明;2014.5.140.6JG Wu增加若干API2014.6.180.7JG Wu增加 dns 接口;修改、添加用戶參數(shù)保存接口;添加任務(wù)接口;添加 softap 模式下

3、獲取已連設(shè)備信息接口;添加打印系統(tǒng)內(nèi)存空間及獲取可用 heap 區(qū)大小接口;其他2014.7.100.8Fei Yu修改 upgrade 接口;增加開關(guān)打印接口;增加 sion 連接狀態(tài)查詢接口增加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 接口免責(zé)和公告本文中的信息,包括供參考的 URL 地址,變更,恕不另行通知。文檔“按現(xiàn)狀”提供,不負(fù)任何擔(dān)保責(zé)任,包括對(duì)適銷性、適用于特定用途或非性的任何擔(dān)保,和任何提案、規(guī)格或樣品在他處提到的任何擔(dān)保。本文檔不負(fù)任何責(zé)任,包括使用本文檔內(nèi)信息產(chǎn)生的任何專利權(quán)行為的責(zé)任。本文檔在此未以反言或其他方式授予任何知識(shí)使用,不管是明示還是暗示。成員標(biāo)志歸Wi-Fi所有。Wi-Fi文中提到的所有商標(biāo)名稱、商標(biāo)和商標(biāo)均屬其各自所有者的,特此。歸 2014所有。保留所利。3 / 90Espressif SystemsJanuary 23, 20152、新增 RTC 接口3、新增 ADC 接

5、口4、修改 sion、softAP 結(jié)構(gòu)體2014.12.190.9.4Fei Yu1、新增省電控制接口;2、新增igmp 接口;2015.01.220.9.5Fei Yu新增如下接口1、Upgrade 接口;2、DHCP 相關(guān)接口;3、連接過的 ap 查詢 4、smart config 接口 5、TCP 收包阻塞6、AT 接口目錄版本信息2目錄41.2.3.前言9框架10SDK 提供的 API 接口11定時(shí)器接口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 相關(guān)接口21spi_flash_get_id21spi_flash_erase_sector21spi_f

8、lash_write21spi_flash_read22WIFI 相關(guān)接口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云端升級(jí)接口40system_upgrade_userbin_che

12、ck40system_upgrade_flag_set40system_upgrade_flag_check41system_upgrade_start41system_upgrade_reboot41sniffer 相關(guān)接口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網(wǎng)絡(luò)連接相關(guān)接口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數(shù)據(jù)結(jié)構(gòu)定義70定時(shí)器結(jié)構(gòu)70wifi 參數(shù)70sion 配置參數(shù)70softap 配置參數(shù)71scan 參數(shù)71smart config 結(jié)構(gòu)體72json 相關(guān)結(jié)構(gòu)73json 結(jié)構(gòu)73

19、json 宏定義74espconn 參數(shù)75回調(diào) function75espconn75驅(qū)動(dòng)接口78GPIO 接口 API78PIN 腳功能設(shè)置宏78gpio_output_set78GPIO 輸入輸出相關(guān)宏79GPIO 中斷控制相關(guān)宏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 中斷處理函數(shù)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、物聯(lián)網(wǎng)的 SDK 為用戶提供了一個(gè)簡(jiǎn)單、快速、高效開發(fā)物聯(lián)網(wǎng)產(chǎn)品的。本文旨在介紹該 SDK 的基本框架,以及相關(guān)的 API 接口。主要的閱讀對(duì)象為需要在 ESP8266 物聯(lián)網(wǎng)進(jìn)行開發(fā)的開發(fā)。9 / 90Espressif SystemsJanuary 23, 20152.框架為了讓用戶不用關(guān)心底層網(wǎng)絡(luò),如WIFI、TCP/IP 等的具體實(shí)現(xiàn),僅專注于物聯(lián)網(wǎng)應(yīng)用的開發(fā),SDK 為用戶提供了一套數(shù)據(jù)接收、發(fā)送函數(shù)接口,用戶只需利用相應(yīng)接口即可完成網(wǎng)絡(luò)數(shù)據(jù)的收發(fā)。ESP8266 物聯(lián)網(wǎng)的所有網(wǎng)絡(luò)功能均在庫中實(shí)現(xiàn),對(duì)用戶不透明,用戶初始化功能在 user_main.c 文件中實(shí)現(xiàn)。函數(shù) void u

23、sre_init(void)的作用是給用戶提供一個(gè)初始化接口,也是上層程序,用戶可在該函數(shù)內(nèi)增加硬件初始化、網(wǎng)絡(luò)參數(shù)設(shè)置、定時(shí)器初始化等功能。SDK 中提供了對(duì) json 包的處理 API,用戶也可以采用自定義數(shù)據(jù)包格式,自行對(duì)數(shù)據(jù)進(jìn)行處理。10 / 90Espressif SystemsJanuary 23, 20153. SDK 提供的 API 接口3.1. 定時(shí)器接說明:定時(shí)器接口接口函數(shù)或宏以及所使用的參數(shù)結(jié)構(gòu)體定義在(工程目錄includeosapi.h)。3.1.1. os_timer_arm3.1.2. os_timer_disarm11 / 90Espressif System

24、sJanuary 23, 2015功能:取消定時(shí)器定時(shí)Void os_timer_disarm(ETSTimer *ptimer)ETSTimer *ptimer定時(shí)器結(jié)構(gòu)(該結(jié)構(gòu)體參見 4.1 說明)返回:無功能:初始化定時(shí)器Voidos_timer_arm(ETSTimer*ptimer,u32_tmilliseconds,bool repeat_flag)ETSTimtimer定時(shí)器結(jié)構(gòu)(該結(jié)構(gòu)體參見 4.1 說明)u32_t milliseconds定時(shí)時(shí)間,毫秒bool repeat_flag該定時(shí)是否重復(fù)返回:無口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)功能:恢復(fù)出廠設(shè)置void system_restore(void)無返回:無口功能:設(shè)置定時(shí)器回調(diào)函數(shù)Void os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void*parg)ETSTimer *ptimer定時(shí)器結(jié)構(gòu)(該結(jié)構(gòu)體參見 4.1 說明) TESTimerFunc *pfunction定時(shí)器回調(diào)函

26、數(shù) void*parg回調(diào)函數(shù)參數(shù)返回:無3.2.3. system_timer_reinit3.2.4. system_get_chip_id3.2.5. system_deep_sleep13 / 90Espressif SystemsJanuary 23, 2015功能:設(shè)置進(jìn)入 deep sleep 模式,每休眠多長時(shí)間(us)喚醒一次。喚醒以后整個(gè)系統(tǒng)重新跑,程序從 user_init 開始。功能:獲取idu32 system_get_chip_id(void)無返回:id 值功能:當(dāng)需要使用 us 級(jí) timer 時(shí),需要重新初始化 timer。注意:1、同時(shí)定義 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 前調(diào)用,用以在 deep sleep 醒來后判斷作什么操作。說明:后述 init 參數(shù)指 esp_init_data_default.binbool system_deep_sleep_set_option(u8 option)u8 opt

28、ion- option=0 時(shí),init 參數(shù) byte 108 有效,option0 時(shí),init 參數(shù)的 byte 108 無效。具體如下:deep_sleep_set_option(0) 表示由 init 參數(shù) 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 設(shè)置休眠時(shí)間,: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功能:獲取系統(tǒng)可用 heap 區(qū)空間大小U32 system_get_free_heap_size(void)無功能:打印系統(tǒng)內(nèi)存空間分配,打印信息包括 data/rodata/bss/heapVoid system_pr_meminfo (void)無返回:無功能:開關(guān)打印 log 功能。Void system_set_os_pr(u8 onoff)U8 onoff 打開/關(guān)閉打印功能;0 x00 代表關(guān)閉打印功能0 x01 代表打開打印功能默認(rèn)為打開打印功能。返回:無3.2.10.system_os_tas

31、k16 / 90Espressif SystemsJanuary 23, 2015功能:建立系統(tǒng)任務(wù)bool system_os_task(os_task_t task, u8 prio, os_event_t *queue, u8 qlen)Os_task_t task任務(wù)函數(shù)U8 prio任務(wù)優(yōu)先級(jí),當(dāng)前支持 3 個(gè)郵件級(jí)的任務(wù) 0/1/2,0 最低Os_event_t *queue消息隊(duì)列指針 U8 qlen消息隊(duì)列深度返回: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 區(qū)大小3.2.11.system_os_t3.2.12.system_get_time17 / 90Espressif SystemsJanuary 23, 2015功能:獲得系統(tǒng)時(shí)間,:微秒 us。u32 system_get_time(void)功能:向任務(wù)發(fā)送消息bool system_os_t (u8 prio, os_signal_t s

33、ig, os_param_t par)U8 prio任務(wù)優(yōu)先級(jí),與建立時(shí)的優(yōu)先級(jí)對(duì)應(yīng) Os_signal_t sig消息類型Os_param_t par消息參數(shù)返回:True,成功;False,失敗結(jié)合上一節(jié)的示例: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 校準(zhǔn)函數(shù)。u32 system_rtc_clock_cali_proc(void)Null返回:返回 RTC 時(shí)鐘周期。us,bit11 到 bit0 為小數(shù)部分。注意:RTC 系列接口的使用示例,見附錄。功能:獲得 RTC 時(shí)間,:RTC 時(shí)鐘周期。舉例:system_get_rtc_time() 返回 10,

35、表示當(dāng)前走了 10 個(gè) RTC 時(shí)鐘周期; system_rtc_clock_cali_proc 返回 5,表示一個(gè) RTC 時(shí)鐘周期為 5 us,則實(shí)際時(shí)間為 10 x 5 = 50 us。注意:deep sleep(或者 system_restart)時(shí),系統(tǒng)時(shí)間歸零,但是 RTC 時(shí)間仍然繼續(xù)。u32 system_get_rtc_time(void)Null返回:RTC 時(shí)間,:微秒。如果計(jì)時(shí)滿,則歸零重新計(jì)。Null返回:系統(tǒng)時(shí)間,:微秒。如果計(jì)時(shí)滿,則歸零重新計(jì)。3.2.15.system_rtc_mem_write3.2.16.system_rtc_mem_read19 / 90

36、Espressif SystemsJanuary 23, 2015功能: RTC memory 中的數(shù)據(jù),提供如下圖中 user data 段共 512 bytes 給用戶 數(shù)據(jù)。|_ _ _ _ _system data _ _ _ _ _|_ _ _ _ _ _ _ _ _ user data|256 bytes|512 bytes|注意: RTC memory 只能 4 字節(jié)整存整取,函數(shù)中的參數(shù) src_addr 為 block number,4 字節(jié)每 block,因此若 上圖 user data 區(qū)起始位置,src_addr 為 256/4 = 64,save size 為存入數(shù)據(jù)

37、的字節(jié)數(shù)。bool system_rtc_mem_read (u32 src_addr, void * des_addr, u32功能:由于 deep sleep 時(shí),僅 RTC 在工作,用戶需要,可將數(shù)據(jù)存入 RTC memory 中。提供如下圖中 user data 段共 512 bytes 供用戶數(shù)據(jù)。|_ _ _ _ _system data _ _ _ _ _|_ _ _ _ _ _ _ _ _ user data|256 bytes|512 bytes|注意: RTC memory 只能 4 字節(jié)整存整取,函數(shù)中參數(shù) des_addr 為 block number,4 字節(jié)每blo

38、ck,因此若寫入上圖 user data 區(qū)起始位置,des_addr 為 256/4 = 64,save size 為存入數(shù)據(jù)的字節(jié)數(shù)。bool system_rtc_mem_write (u32 des_addr, void * src_addr, u32save_size)u32 des_addr 寫入 rtc memory 的位置,des_addr =64 void * src_addr 數(shù)據(jù)指針u32 save_size 數(shù)據(jù)長度,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)參數(shù):NULL返回:Adc 的值功能:UART0 轉(zhuǎn)換。將 MTCK 作為 UART0 RX,MTDO 作為 UART0 TX。硬件上也從 MTDO(U0CTS) 和 MTCK(U0RTS) 連出 UART0,從而避免上電時(shí)從 UART0 打印出 ROM LOG。voidsystem_uart_swap (void)參數(shù):NULL返回:NULLsave_size)u32 src_addr rtc memory 的位置,src_addr =64 void *

40、des_addr 數(shù)據(jù)指針u32 save_size 數(shù)據(jù)長度,byte返回:True, 成功;False,失敗。3.3. SPI Flash 相關(guān)接3.3.1. spi_flash_get_id3.3.2. spi_flash_erase_sector3.3.3. spi_flash_write21 / 90Espressif SystemsJanuary 23, 2015功能:將數(shù)據(jù)存到 Flash。說明:flash 讀寫操作的介紹,詳見文檔“Espressif IOT Flash 讀寫說明”。功能:擦除 Flash 的某個(gè)扇區(qū)。說明:flash 讀寫操作的介紹,詳見文檔“Espressi

41、f IOT Flash 讀寫說明”。SpiFlashOpResultspi_flash_erase_sector (u16 sec)參數(shù):u16 sec 扇區(qū)號(hào),從扇區(qū) 0 開始計(jì)數(shù),每扇區(qū) 4KB返回:Typedef enum SPI_FLASH_RESULT_OK, SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUTSpiFlashOpResult;功能:獲取 spi flash id。U32 spi_flash_get_id (void)參數(shù):Null返回:SPI Flash id口3.3.4. spi_flash_read22 / 90Espr

42、essif SystemsJanuary 23, 2015功能: 從 flash數(shù)據(jù)。說明:flash 讀寫操作的介紹,詳見文檔“Espressif IOT Flash 讀寫說明”。SpiFlashOpResult spi_flash_read(u32 src_addr, u32 * des_addr, u32 size)參數(shù):u32 src_addr-Flash 的地址,起始位置。u32 * des_addr 到數(shù)據(jù)的指針。U32 size -數(shù)據(jù)長度返回:Typedef enumSPI_FLASH_RESULT_OK,SpiFlashOpResult spi_flash_write (u3

43、2 des_addr, u32 *src_addr, u32 size)參數(shù):u32 des_addr- 寫入 Flash 的地址,起始位置。u32 *src_addr - 寫入 Flash 的數(shù)據(jù)指針。U32 size - 寫入數(shù)據(jù)長度返回:Typedef enum SPI_FLASH_RESULT_OK, SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUTSpiFlashOpResult;3.4. WIFI 相關(guān)接3.4.1. wifi_get_opmode3.4.2. wifi_set_opmode23 / 90Espressif Systems

44、January 23, 2015功能:設(shè)置 wifi 工作模式為 SION、SOFTAP、SION+SOFTAP說明:在 esp_iot_sdk_v0.9.2 之前版本,本接口調(diào)用后,需要重啟生效;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 接口連接所配置的路由功能:設(shè)置 wifi 的 sion 接口參數(shù)。注意:如果在 user_init 中調(diào)用 wifi_sion_set_config,底層會(huì)自動(dòng)連接對(duì)應(yīng)路由,不需要調(diào)用 w

46、ifi_sion_connect 來進(jìn)行連接。請(qǐng)注意 sion_config.b_set 參數(shù)一般需初始化為 0。bool wifi_sion_set_config (struct sion_config *config)struct sion_config *configwifi 的 sion 接口參數(shù)指針返回:True ,成功;False ,失敗功能:獲取 wifi 的 sion 接口參數(shù)bool wifi_sion_get_config (struct sion_config *config)struct sion_config *configwifi 的 sion 接口參數(shù)指針返回: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 的狀態(tài)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 ,失敗注意:如果連 接 過路由, 請(qǐng) 先 wifi_sion_disconnect , 再 調(diào)用 wifi_sion_connect。bool wifi_sion_connect(void)無返回:True ,成功;False ,失敗3.4.8. wifi_sion_scan26 / 90Espressif SystemsJanuary 23, 2015功能:獲取 AP 熱點(diǎn)信息

49、bool wifi_sion_scan (struct scan_config *config, scan_done_cb_t cb);結(jié)構(gòu)體:struct scan_configu8 *;/ AP 的u8 *b;/ AP 的 bu8 channel;/掃描某特定信道u8 show_hidden;/是否掃描隱藏的AP;struct scan_config *config 掃描 AP 的相關(guān)參數(shù),傳 NULL 表示此項(xiàng)不設(shè)限。例如,若 config 傳 NULL,則掃描獲取所有 AP 的信息;若 config 中、b傳 NULL,僅設(shè)置 channel,則掃描該特定 channel 上的 AP

50、信息。若 config 中指定,b為 NULL,channel 為 0,則在所有信道上掃描某指定 AP。scan_done_cb_t cb - 獲取 AP 熱點(diǎn)信息回調(diào)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功能:設(shè)置 ESP8266 sion 最多可幾個(gè) AP 的信息bool wifi_sio

51、n_ap_number_set (u8 ap_number);功能:scan 回調(diào)functionvoid scan_done_cb_t (void *arg, SUS sus);void *arg獲取的 AP 熱點(diǎn)信息 參數(shù),arg 指針需要轉(zhuǎn)換為 struct bss_info 結(jié)構(gòu)體指針來 所掃描的 AP 信息,AP 熱點(diǎn)信息以鏈表形式 參見 struct bss info 結(jié)構(gòu)體定義)SUS sus獲取結(jié)果返回:無示例: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功能:當(dāng)前正在使用第幾號(hào)的SP8266 每配置連接一個(gè) AP,會(huì)進(jìn)行功能:ESP8266 sion 切換到第幾號(hào)

53、AP 配置進(jìn)行連接bool wifi_sion_ap_change (u8 current_ap_id);u8 current_ap_id第幾號(hào) AP 配置。從 0 開始計(jì)數(shù)。返回:True ,成功;False ,失敗功能:獲取 ESP8266 sion 曾經(jīng)連接過的 AP 的信息,最多5 個(gè)。u8 wifi_sion_get_ap_info(struct sion_config config)參數(shù):struct sion_config config 獲取的所有 AP 連接信息,最多 5 個(gè),因此請(qǐng)傳入數(shù)組大小為 5。返回:實(shí)際的 AP 信息個(gè)數(shù)。示例:struct sion_config c

54、onfig5;i = wifi_sion_get_ap_info(&config);u8 ap_number 最多可AP 的數(shù)目(MAX: 5)。返回:True ,成功;False ,失敗3.4.14.wifi_sion_get_auto_connect3.4.15.wifi_sion_set_auto_connect29 / 90Espressif SystemsJanuary 23, 2015功能:設(shè)置 ESP8266 sion 上電是否自動(dòng)連接已的 AP (路由)注意:此 api 如果在 user_init 中調(diào)用,則當(dāng)前這次上電就生效;如果在其他地方調(diào)用,則下一次上電生效。bool w

55、ifi_sion_set_auto_connect(u8 set)u8 set 是否自動(dòng)連接;0,關(guān)閉自動(dòng)連接;1,開啟自動(dòng)連接。返回:True ,成功;False ,失敗功能:查詢 ESP8266 sion 上電是否會(huì)自動(dòng)連接已的 AP (路由)u8 wifi_sion_get_auto_connect(void)Null返回:0 ,不自動(dòng)連接; 非 0 ,自動(dòng)連接,從 0 開始計(jì)數(shù),這樣,如果當(dāng)前 AP 無法成功聯(lián)網(wǎng)時(shí),ESP8266 會(huì)自動(dòng)切換到下一個(gè) AP 進(jìn)行連接。U8 wifi_sion_get_current_ap_id ();無返回:當(dāng)前使用的 A,即當(dāng)前 AP 為 ESP82

56、66的第幾號(hào)配置信息。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 狀態(tài)enum dhcp_sus wifi_sion_dhcpc_sus(void)Null返回:enum dhcp_sus 功能:關(guān)閉 ESP8266 sion dhcp cnt.注意:dhcp 默認(rèn)開啟。bool wifi_sion_dhcpc_stop(void)Null返回

57、:True ,成功;False ,失敗功能:開啟 ESP8266 sion dhcp cnt.注意:dhcp 默認(rèn)開啟。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 設(shè)備信息,包括 mac 和 ipstruct sion_

58、info * wifi_softap_get_sion_info(void)功能:設(shè)置 wifi 的 softap 接口參數(shù)bool wifi_softap_set_config (struct softap_config *config)struct softap_config *configwifi 的 softap 接口參數(shù)指針(詳見結(jié)構(gòu)體softap config 說明)返回:True ,成功;False ,失敗功能:設(shè)置 wifi 的 softap 接口參數(shù)bool wifi_softap_get_config(struct softap_config *config)struct

59、softap_config *configwifi 的 softap 接口參數(shù)指針(詳見結(jié)構(gòu)體softap config 說明)返回:True ,成功;False ,失敗DHCP_STOPPED, DHCP_STARTED;3.4.22.wifi_softap_free_sion_info32 / 90Espressif SystemsJanuary 23, 2015功能:由于調(diào)用 wifi_softap_get_sion_info 函數(shù)生成的 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論