版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、AN1609D ATK-ESP8266 WIFI 模塊使用說明 本應(yīng)用文檔(AN1609D,對應(yīng) ALIENTEK 羅 STM32F429 開發(fā)板擴展實驗 13)將教大家如何在ALIENTEK 羅 STM32F429 開發(fā)板上使用 ATK-ESP8266 WIFI 模塊。 本文檔分為如下幾部分: 1,ATK-ESP8266 WIFI 模塊簡介 2,硬件連接 3,軟件實現(xiàn) 4,驗證 1、ATK-ESP8266 WIFI 模塊簡介 ATK-ESP8266 是 ALIENTEK 推出的一款高性能的UART-WiFi(串口-無線 WIFI)模塊, ATK-ESP8266 板載正點原子團隊自主開發(fā)的 A
2、TK-ESP-01 模塊,該模塊通過 FCC,CE 認(rèn)證, 可直接用于產(chǎn)品出口歐美地區(qū)。 ATK-ESP8266 模塊采用串口(LVTTL)與 MCU(或其他串口設(shè)備)通信,內(nèi)置 TCP/IP 協(xié)議棧,能夠?qū)崿F(xiàn)串口與WIFI 之間的轉(zhuǎn)換。 通過 ATK-ESP8266 模塊,傳統(tǒng)的串口設(shè)備只是需要簡單的串口配置,即可通過網(wǎng)絡(luò) (WIFI)傳輸自己的數(shù)據(jù)。 ATK-ESP8266 模塊支持 LVTTL 串口,兼容 3.3V 和 5V 單片機系統(tǒng),可以很方便的與你的產(chǎn)品進行連接。模塊支持串口轉(zhuǎn) WIFI STA、串口轉(zhuǎn) AP 和 WIFI STA+WIFI AP 的模式,從而快速構(gòu)建串口-WIFI
3、 數(shù)據(jù)傳輸方案,方便你的設(shè)備使用互聯(lián)網(wǎng)傳輸數(shù)據(jù)。 ATK-ESP8266 模塊非常小巧(29mm*19mm),模塊通過 6 個 2.54mm 間距的排針與外部連接,模塊外觀如圖 1.1 所示: 圖 1.1 ATK-ESP8266 模塊外觀圖 圖 1.1 中,各引腳的詳細(xì)描述如表 1.1 所示: 序號名稱說明1VCC電源(3.3V5V) 2GND電源地 3TXD模塊串口發(fā)送腳(TTL 電平,不能直接接 RS232 電平!),可接單片機的 RXD4TXD模塊串口接收腳(TTL 電平,不能直接接 RS232 電平!),可接單片機的 TXD5RST復(fù)位(低電平有效) 6IO_0用于進入固件燒寫模式,低
4、電平是燒寫模式,高電平是運行模式(默認(rèn)狀態(tài)) 表 1.1 ATK-ESP8266 模塊各引腳功能描述 ATK-ESP8266 WIFI 模塊的原理圖如圖 1.2 所示: 1.1 模塊使用 圖 1.2 ATK-ESP8266 WIFI 模塊原理圖 本文檔,我們將介紹大家如何通過 ALIENTEK 羅 STM32F429 開發(fā)板連接到ATK-ESP8266 WIFI 模塊,實現(xiàn):串口無線 AP(COM-AP)、串口無線 STA(COM-STA)和串口無線AP+STA(COM-AP+STA)這 3 個模式的測試,每個模式又包含 TCP 服務(wù)器、TCP 客戶端和 UDP 這 3 個子模式,本節(jié)我們將詳
5、細(xì)介紹這些模式的使用。 模塊配置可以通過串口配置,這里我們通過開發(fā)板串口配置,并實現(xiàn)通信。 1.1.1 AT 指令簡介 在 AT 模式下可以通過串口的 AT 指令對系統(tǒng)參數(shù)做配置。指令格式如下: AT+=rn根據(jù)不同指令,模塊將返回不同的返回值。其中rn 為回車換行符,用 16 進制表示, 就是 0X0D,0X0A。 例如:“AT+CWMODE?rn”查詢當(dāng)前模塊的 WIFI 模式。 例如:“AT+CWMODE=3rn”設(shè)置模塊 WIFI 模式為AP+STA 模式。 ATK-ESP8266 模塊支持的指令列表如表 1.1.1.1 所示: RST重啟模塊 GMR查看模塊版本信息 CWMODE設(shè)置
6、模塊WIFI 模式 CWJAP設(shè)置模塊加入 AP 熱點 CWLAP列表當(dāng)前可用 AP 熱點 CWQAP退出當(dāng)前連接的 AP 熱點 CWSAP設(shè)置 AP 模式下的WIFI 參數(shù) CWLIF查看已接入設(shè)備的 IPCIPSTATUS獲得連接狀態(tài) CIPSTART建立TCP 連接或注冊 UDP 端 CIPSEND發(fā)送數(shù)據(jù) CIPCLOSE關(guān)閉TCP 或 UDPCIFSR獲取本地 IP 地址 CIPMUX啟動多連接 CIPSERVER配置為服務(wù)器 CIPMODE設(shè)置模塊傳輸方式 CIPSTO設(shè)置服務(wù)器超時時間 CIUPDATE網(wǎng)絡(luò)固件升級 表 1.1.1.1ATK-ESP8266 模塊 AT 指令表 1
7、.1.2 串口無線 WIFI(COM-AP) 串口無線WIFI(COM-AP)模式,模塊作為無線 WIFI 熱點,允許其他 WIFI 設(shè)備連接到本模塊,實現(xiàn)串口與其他設(shè)備之間的無線(WIFI)數(shù)據(jù)轉(zhuǎn)換互傳。該模式下,根據(jù)應(yīng)用場景的不同,可以設(shè)置 3 個子模式:TCP 服務(wù)器、TCP 客戶端,UDP。 接下來看看如何聽過 AT 指令配置模塊,達(dá)到我們所要的功能,這里僅列出必要配置, 配置準(zhǔn)備:1,模塊處于默認(rèn)設(shè)置(即出廠設(shè)置);2,準(zhǔn)備一個帶 WIFI 功能的設(shè)備,如智能手機、PAD、筆記本電腦等。 串口無線WIFI AP 模式,TCP 服務(wù)器配置,如表 1.1.2.1 所示: 發(fā)送指令 作用
8、AT+CWMODE=2設(shè)置模塊WIFI 模式為 AP 模式 AT+RST重啟生效 AT+CWSAP=”ATK-ESP8266”,”12345678”,1,4設(shè)置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=1開啟多連接 AT+CIPSERVER=1,8086開啟 SERVER 模式,設(shè)置端口為 8086AT+CIPSEND=0,25向 ID0 發(fā)送 25 字節(jié)數(shù)據(jù)包 發(fā)送指令 作用 表 1.1.2.1 串口無線WIFI AP TCP 服務(wù)器配置串口無線WIFI AP 模式,TCP 客戶端配
9、置,如表 1.1.2.2 所示: AT+CWMODE=2設(shè)置模塊WIFI 模式為 AP 模式 AT+RST重啟生效 AT+CWSAP=”ATK-ESP8266”,”12345678”,1,4設(shè)置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=0開啟單連接 AT+CIPSTART=TCP,192.168.4.XXX”,8086建立TCP 連接到” 192.168.4.XXX”,8086AT+CIPMODE=1開啟透傳模式(僅單連接 client 時支持) AT+CIPSEND開始發(fā)送數(shù)據(jù) 表
10、1.1.2.2 串口無線WIFI AP 模式 TCP 客戶端配置串口無線WIFI AP 模式,UDP 配置,如表 1.1.2.3 所示: 發(fā)送指令 作用 AT+CWMODE=2設(shè)置模塊WIFI 模式為 AP 模式 AT+RST重啟生效 AT+CWSAP=”ATK-ESP8266”,”12345678”,1,4設(shè)置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=0開啟單連接 AT+CIPSTART=UDP,192.168.4.XXX,8086建立 UDP 連接到”192.168.4.XXX”,
11、8086AT+CIPSEND=25向目標(biāo) UDP 發(fā)送 25 字節(jié)數(shù)據(jù) 表 1.1.2.3 串口無線WIFI AP 模式 UDP 配置 1.1.3 串口無線 STA(COM-STA) 串口無線 STA(COM-STA)模式,模塊作為無線WIFI STA,用于連接到無線網(wǎng)絡(luò),實現(xiàn)串口與其他設(shè)備之間的無線(WIFI)數(shù)據(jù)轉(zhuǎn)換互傳。該模式下,根據(jù)應(yīng)用場景的不同, 可以設(shè)置 3 個子模式:TCP 服務(wù)器、TCP 客戶端,UDP。 接下來看看如何聽過 AT 指令配置模塊,達(dá)到我們所要的功能,這里僅列出必要配置, 配置準(zhǔn)備:1,模塊處于默認(rèn)設(shè)置(即出廠設(shè)置);2,準(zhǔn)備一個無線路由器,且路由器開啟 DHCP
12、 服務(wù)。 串口無線 STA 模式,TCP 服務(wù)器配置,如表 1.1.3.1 所示: 發(fā)送指令 作用 AT+CWMODE=1設(shè)置模塊WIFI 模式為 STA 模式 AT+RST重啟模塊并生效 AT+CWJAP=ALIENTEK入WIFI 熱點:ALIENTEK,為T+CIPMUX=1開啟多連接 AT+CIPSERVER=1,8086開啟服務(wù)器,端 為 8086AT+CIPSEND=0,25向 ID0 發(fā)送 25 字節(jié)的數(shù)據(jù) 發(fā)送指令 作用 AT+CWMODE=1設(shè)置模塊WIFI 模式為 STA 模式 AT+RST重啟模塊并生效 表 1.1.3.
13、1 串口無線STA 模式 TCP 服務(wù)器設(shè)置串口無線 STA 模式,TCP 客戶端配置,如表 1.1.3.2 所示: AT+CWJAP=ALIENTEK入WIFI 熱點:ALIENTEK,為T+CIPMUX=0開啟單連接 AT+CIPSTART=TCP,192.168.1.XXX,8086建立TCP 連接到” 192.168.1.XXX”,8086AT+CIPMODE=1開啟透傳模式 AT+CIPSEND開始傳輸 表 1.1.3.2 串口無線STA 模式 TCP 客戶端配置串口無線 STA 模式,UDP 配置,如表 1.1.3.3 所示: 發(fā)
14、送指令 作用 AT+CWMODE=1設(shè)置模塊WIFI 模式為 STA 模式 AT+RST重啟模塊并生效 AT+CWJAP=ALIENTEK加入 WIFI 熱點:ALIENTEK,為T+CIPMUX=0開啟單連接 AT+CIPSTART=UDP,192.168.1.XXX,8086建立 UDP 連接到” 192.168.4.XXX”,8086AT+CIPSEND=25向目標(biāo) UDP 發(fā)送 25 字節(jié)數(shù)據(jù) 表 1.1.3.3 串口無線STA 模式 UDP 配置 1.1.4 串口無線 AP+STA(COM-AP+STA) 串口無線 AP+STA(C
15、OM-AP+STA)模式,模塊既作無線 WIFI AP,又作無線 STA, 其他WIFI 設(shè)備可以連接到該模塊,模塊也可以連接到其他無線網(wǎng)絡(luò),實現(xiàn)串口與其他設(shè)備之間的無線(WIFI)數(shù)據(jù)轉(zhuǎn)換互傳。該模式下,根據(jù)應(yīng)用場景的不同,可以設(shè)置 9 個子模式:(TCP 服務(wù)器、TCP 客戶端,UDP)|(TCP 服務(wù)器、TCP 客戶端,UDP)。 接下來看看如何聽過 AT 指令配置模塊,達(dá)到我們所要的功能,這里僅列出必要配置, 配置準(zhǔn)備:1,模塊處于默認(rèn)設(shè)置(即出廠設(shè)置);2,準(zhǔn)備一個帶 WIFI 功能的設(shè)備,如智能手機、PAD、筆記本電腦等;3,準(zhǔn)備一個無線路由器,且路由器開啟 DHCP 服務(wù)。 下面
16、僅介紹 3 種模式。AP 服務(wù)器,STA 的三種模式。 串口無線 AP+STA 模式,AP 作 TCP 服務(wù)器,STA 做 TCP 服務(wù)器的配置,如表 1.1.4.1 所示: 發(fā)送指令 作用 AT+CWMODE=3設(shè)置模塊WIFI 模式為 AP+STAAT+RST重啟模塊并生效 AT+CWSAP=ATK-ESP8266,12345678,1,4加入WIFI 熱點:ALIENTEK,為T+CWJAP=ALIENTEK置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_P
17、SKAT+CIPMUX=1開啟多連接 AT+CIPSERVER=1,8086開啟服務(wù)器,端 8086AT+CIPSTO=1200設(shè)置服務(wù)器超時時間 1200sAT+CIPSEND=0,25向 ID0 發(fā)送數(shù)據(jù) AT+CIPSEND=1,25向 ID1 發(fā)送數(shù)據(jù) 表 1.1.4.1 串口無線AP+STA 模式 AP 作 TCP 服務(wù)器STA 作 TCP 服務(wù)器配置 串口無線 AP+STA 模式,AP 作 TCP 服務(wù)器,STA 作 TCP 客戶端的配置,如表 1.1.4.2 所示: 發(fā)送指令 作用 AT+CWMODE=3設(shè)置模塊WIFI 模式為 AP+STAAT+RST重啟模塊并生效 AT+CW
18、SAP=ATK-ESP8266,12345678,1,4加入WIFI 熱點:ALIENTEK,為T+CWJAP=ALIENTEK置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=1開啟多連接 AT+CIPSERVER=1,8086開啟服務(wù)器,端 8086AT+CIPSTO=1200設(shè)置服務(wù)器超時時間 1200sAT+CIPSTART=0,TCP,192.168.1.XXX,8086STA 作為 ID0 連接到 192.168.1.XXX,8
19、086AT+CIPSEND=0,25向 ID0 發(fā)送數(shù)據(jù) AT+CIPSEND=1,25向 ID1 發(fā)送數(shù)據(jù) 表 1.1.4.2 串口無線AP+STA 模式 AP 作 TCP 服務(wù)器STA 作 TCP 客戶端配置串口無線AP+STA 模式,AP 作 TCP 服務(wù)器,STA 作 UDP 的配置,如表 1.1.4.3 所示 發(fā)送指令 作用 AT+CWMODE=3設(shè)置模塊WIFI 模式為 AP+STAAT+RST重啟模塊并生效 AT+CWSAP=ATK-ESP8266,12345678,1,4加入WIFI 熱點:ALIENTEK,為T+CWJAP=ALIENTEK,1590
20、2020353設(shè)置模塊的 AP 參數(shù):SSID 為 ATK-ESP8266, 為 12345678,通道號為 1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=1開啟多連接 AT+CIPSERVER=1,8086開啟服務(wù)器,端 8086AT+CIPSTO=1200設(shè)置服務(wù)器超時時間 1200sAT+CIPSTART=0,UDP,192.168.1.XXX,8086STA 作為 ID0 連接到 192.168.1.XXX,8086AT+CIPSEND=0,25向 ID0 發(fā)送數(shù)據(jù) AT+CIPSEND=1,25向 ID1 發(fā)送數(shù)據(jù) 表 1.1.4.3 串口無線AP+STA 模式 AP
21、作 TCP 服務(wù)器STA 作 UDP 配置 2、硬件連接 2.1 功能簡介 本實驗功能簡介:本實驗用于測試 ATK-ESP8266 模塊,總共包括 3 大項測試,每大項又包括 3 個子模式的測試,下面分別介紹。 2.1.1 串口無線 WIFI(COM-AP)測試 該項測試網(wǎng)絡(luò)連接方式:WIFI 設(shè)備ATK-ESP8266 模塊 注: ,表示通過無線連接(WIFI),下同通過按 KEY_UP 鍵選擇此模式,進入此模式后,首先會進入到串口 WIFI AP 工作模式 選擇界面,總共有 3 種模式可供選擇:TCP 服務(wù)器、TCP 客戶端、UDP。通過 KEY0/KEY1 選擇模式,通過 KEY_UP
22、確定。點擊確定后,服務(wù)器模式(TCP 服務(wù)器)不需要手動輸入IP 地址,直接進入下一步,開始配置模塊。但是對于 TCP 客戶端/UDP 模式,還會需要手動輸入遠(yuǎn)端 IP 地址,此時界面會提示:遠(yuǎn)端 IP 設(shè)置,通過屏幕顯示的虛擬鍵盤,輸入遠(yuǎn)端 IP 地址, 輸入完后,可以點擊虛擬鍵盤的“連接”按鍵,進入下一步,開始配置模塊,此時, 開發(fā)板將對模塊進行配置,配置成功后,進入數(shù)據(jù)收發(fā)測試。 進入測試后,開發(fā)板液晶會顯示相關(guān)提示信息,方便大家測試,信息包括: IP 地址:如果是服務(wù)器模式,那么 IP 地址表示 ATK-ESP8266 模塊的 IP 地址。如果是客戶端模式,則表示模塊將要連接到的目標(biāo)
23、IP 地址。 端口:為方便測試,所有模式的端口都固定為 8086。 狀態(tài):表示連接狀態(tài),如果連接建立,則顯示連接成功,如果斷開,則顯示連接失敗。模式:顯示當(dāng)前的工作模式(TCP 服務(wù)器、TCP 客戶端、UDP)。 發(fā)送數(shù)據(jù):顯示當(dāng)需要發(fā)送的數(shù)據(jù),每按一次 KEY0,發(fā)送一次數(shù)據(jù),會在這個區(qū)域顯示發(fā)送的內(nèi)容,當(dāng)發(fā)送完以后,過一段時間,該區(qū)域自動清空。 接收數(shù)據(jù):顯示 ATK-ESP8266 模塊接收到的數(shù)據(jù),對方發(fā)過來的數(shù)據(jù),將顯示在這里, 每次收到新內(nèi)容,會將舊內(nèi)容清空,然后顯示新內(nèi)容,否則舊內(nèi)容將一直顯示。 按 KEY_UP,可以退出此項測試,回到主界面。 對于 3 種子模式:TCP 服務(wù)器
24、、TCP 客戶端、UDP,他們的數(shù)據(jù)收發(fā)測試界面幾乎是一樣的,測試方法也幾乎一模一樣,大同小異,我們就不一一介紹了,在第 4 部分,我們會詳細(xì)介紹測試步驟。 2.1.2 串口無線 STA(COM-STA)測試 該項測試網(wǎng)絡(luò)連接方式:WIFI 設(shè)備無線路由器ATK-ESP8266 模塊(WIFISTA) 通過按 KEY1 鍵選擇此模式,進入此模式后,首先會進入到 WIFI-STA 工作模式選擇界面,剩下的操作,同 2.1.1 節(jié)一模一樣。 2.1.3 串口無線 AP+STA(COM-AP+STA)測試 該項測試網(wǎng)絡(luò)連接方式:WIFI 設(shè)備 ATK-ESP8266 模塊(WIFI AP+STA)無
25、線路由器WIFI 設(shè)備 通過按 KEY0 鍵選擇此模式,進入此模式后,首先會進入到提示界面(請用手機連接到 ATK-ESP8266),然后按任意鍵繼續(xù),接著會進入到 WIFI AP 模式下的模式選擇,接著操作與 2.1.1 節(jié)一模一樣,完成 AP 模式的設(shè)置,接著設(shè)置 STA 模式,與 AP 模式相似。配置成功后,進入數(shù)據(jù)收發(fā)測試。 進入測試后,開發(fā)板液晶會顯示相關(guān)提示信息,信息與 AP 模式和 STA 模式有所差別。端口:為方便測試,所有模式的端口都固定為 8086。 狀態(tài):表示連接狀態(tài),如果連接建立,則顯示連接成功,如果斷開,則顯示連接失敗。模式:顯示當(dāng)前的工作模式(固定顯示:STA+AP
26、 模式)。 AP IP:AP 模式下的 IP 地址。 STA IP:STA 模式下的 IP 地址。 發(fā)送數(shù)據(jù):顯示當(dāng)需要發(fā)送的數(shù)據(jù),每按一次 KEY0,發(fā)送一次數(shù)據(jù),會在這個區(qū)域顯示發(fā)送的內(nèi)容,當(dāng)發(fā)送完以后,過一段時間,該區(qū)域自動清空。 接收數(shù)據(jù):顯示 ATK-ESP8266 模塊接收到的數(shù)據(jù),對方發(fā)過來的數(shù)據(jù),將顯示在這里, 每次收到新內(nèi)容,會將舊內(nèi)容清空,然后顯示新內(nèi)容,否則舊內(nèi)容將一直顯示。 按 KEY_UP,可以退出此項測試,回到主界面。按 KEY0 向 ID0 發(fā)送數(shù)據(jù),按 KEY1向 ID1 發(fā)送數(shù)據(jù)。 對于 9 種子模式:(TCP 服務(wù)器、TCP 客戶端、UDP)|(TCP 服務(wù)
27、器、TCP 客戶端、UDP),他們的數(shù)據(jù)收發(fā)測試界面幾乎是一樣的,測試方法也幾乎一模一樣,大同小異,我們就不一一介紹了,在第 4 部分,我們會詳細(xì)介紹測試步驟。 2.2 硬件資源準(zhǔn)備 本實驗所需要的硬件資源如下: 1, ALIENTEK 羅STM32F429 開發(fā)板 1 個 2, ATK-ESP8266 模塊一個 3, 路由器一個 4, WIFI 設(shè)備兩個(可連接到WIFI 熱點) 2.3 模塊與開發(fā)版連接 ATK-ESP8266 模塊的所有數(shù)據(jù),都是通過串口來傳輸?shù)模晕覀兊拈_發(fā)板與模塊連接,只需要連接串口即可(當(dāng)然也要共地),接下來,我們看看 ALIENTEK 羅STM32F429 開發(fā)
28、板與 ATK-ESP8266 模塊的連接方式,本例程通過開發(fā)板的串口 3 連接 AT-ESP8266 模塊,ALIENTEK 羅 STM32F429 開發(fā)板板載了一個 ATK 模塊接口(ATK MODULE), ATK-ESP8266 WIFI 模塊可直接插入該接口實現(xiàn)與ALIENTEK 羅STM32F429 開發(fā)板的連接。 ATK MODULE 接口同開發(fā)板主芯片的連接原理圖,如圖 2.3.1 所示: 圖 2.3.1 ATK-MODULE 接口與 MCU 連接關(guān)系 從上圖可以看出,ATK-ESP8266 WIFI 模塊的串口最簡單的辦法是連接在開發(fā)板的串口3 上面 ,羅 F429 只需要用跳
29、線帽短接P9 的USART3_RX 和GBC_TX 以及 USART3_TX 和GBC_RX 即可實現(xiàn)。且 ATK-ESP8266 WIFI 模塊的 RST 信號接在GBC_KEY 信號上面, IO_0 信號接到GBC_LED 信號上面。 連接好之后,ALIENTEK 羅 STM32F429 開發(fā)板與 ATK-ESP8266 WIFI 模塊的連接關(guān)系如表 2.3.1 所示: ATK-ESP8266 WIFI 模塊與開發(fā)板連接關(guān)系 ATK-ESP8266 WIFI 模塊 VCCGNDTXDRXDRSTIO_0羅 STM32F429 開發(fā)板 5VGNDPB11PB10PI11PA4表 2.3.1
30、ATK-ESP8266 WIFI 模塊同羅 STM32F429 連接關(guān)系表 使用時,我們只需要將 ATK-ESP8266 WIFI 模塊插入到開發(fā)板的 ATK MODULE 接口即可,如圖 2.3.2 所示: 圖 2.3.2 ATK-ESP8266 WIFI 模塊與開發(fā)版對接實物圖 注意,我們雖然將 RST 和 IO_0 連接到了開發(fā)板的 PI11 和 PA4,但是本例程并沒有控制這兩個信號,所以沒有處理。另外羅開發(fā)板,連接好之后,記得檢查開發(fā)板 P9 的跳線帽哦!必須短接:PB11(RX)和 GBC_TX 以及 PB10(TX)和 GBC_RX。 3、軟件實現(xiàn) 本實驗在羅 F429 開發(fā)板的
31、擴展實驗 4(ATK-SIM900A GSM 模塊測試實驗)基礎(chǔ)上進行修改,刪除原來的 SIM900A 文件夾,新建 ATK_ESP8266 文件夾,在里面新建: common.c、wifista、wifiap、apsta 和common.h 等有文件。 打開原工程,刪除 SIM900A 分組,并將 ATK_ESP8266 文件夾里面的 4 個.c 文件添加到 ATK_ESP8266 分組,并將 ATK_ESP8266 文件夾,加入到頭文件包含路徑里面。 最終去掉原工程的一些未用到的.c 文件,最終工程如圖 3.1 所示: 圖 3.1 ATK-ESP8266 模塊測試實驗工程截圖 本例程由于代
32、碼量較多,我們僅對 ATK-ESP8266 文件夾里面的部分代碼(conmon.c、 apsta.c、wifista.c、wifiap.c 等),以及 main 函數(shù)進行講解,其他的請大家參考源代碼注釋。首先,common.c 文件,該文件是驅(qū)動 ATK-ESP8266 模塊通信的底層接口函數(shù)(AT 指 令的發(fā)送與接收,模塊狀態(tài)檢測等),以及相關(guān)函數(shù)輸入輸出顯示(IP 輸入、模式選擇、模塊狀態(tài)信息顯示等)等。接下來,我們介紹幾個重要的函數(shù)。 第一個是 atk_8266_send_cmd 函數(shù),該函數(shù)用于向 ATK_ESP8266 模塊發(fā)送 AT 指令, 該函數(shù)代碼如下: if(waittime
33、=0)res=1;return res;/得到有效數(shù)據(jù)/接收到期待的應(yīng)答結(jié)果if(USART3_RX_STA&0X8000)if(atk_8266_check_cmd(ack)printf(ack:%srn,(u8*)ack); break;USART3_RX_STA=0;/等待倒計時/發(fā)送命令 /需要等待應(yīng)答u3_printf(%srn,cmd); if(ack&waittime)while(-waittime)delay_ms(10);/向 ATK-ESP8266 發(fā)送命令 /cmd:發(fā)送的命令字符串 /ack:期待的應(yīng)答結(jié)果,如果為空,則表示不需要等待應(yīng)答/waittime:等待時間(單
34、位:10ms)/返回值:0,發(fā)送成功(得到了期待的應(yīng)答結(jié)果)/1,發(fā)送失敗 u8 atk_8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime)u8 res=0; USART3_RX_STA=0;該函數(shù)帶 3 個參數(shù),cmd 表示要發(fā)送的指令字符串,ack 表示發(fā)送指令后期待得到的應(yīng)答字符串,waittime 表示等待應(yīng)答的時間(單位:10ms),如: atk_8288_send_cmd(AT+RST,OK,20);表示發(fā)送指令:AT+RST 到 WIFI 模塊,重啟模塊;期待的應(yīng)答為:OK;等待時間為 200ms。 第二個是 atk_rm04_quit_tra
35、ns 函數(shù),該函數(shù)用于控制模塊退出透傳模式,進入 AT 指令模式。該函數(shù)代碼如下: /ATK-ESP8266 退出透傳模式 /返回值:0,退出成功;/1,退出失敗 u8 atk_8266_quit_trans(void)while(USART3-SR&0X40)=0); USART3-DR=+;delay_ms(15);while(USART3-SR&0X40)=0); USART3-DR=+;delay_ms(15);while(USART3-SR&0X40)=0); USART3-DR=+;delay_ms(500);/等待發(fā)送空 /大于串口組幀時間(10ms)/等待發(fā)送空 /大于串口組幀
36、時間(10ms)/等待發(fā)送空 /等待 500msreturn atk_8266_send_cmd(AT,OK,20); /退出透傳判斷.模塊退出透傳模式只有一種方法,就是在透傳狀態(tài)下發(fā)送“+”,即可退出透傳模式, 進入 AT 模式。此時的 AT 模式下如果設(shè)置模塊重啟,模塊又會自動進入透傳模式,所以在重啟模塊之前,我們需要發(fā)送“AT+CIPMODE=0”來關(guān)閉透傳模式,這樣模塊重啟之后就不會進入 AT 模式了。 接下來 介紹三個查詢函數(shù): atk_8266_consta_check 、 atk_8266_get_wanip 和 atk_8266_get_ip,這三個函數(shù)代碼如下: /獲取 AT
37、K-ESP8266 模塊的連接狀態(tài) /返回值:0,未連接;1,連接成功. u8 atk_8266_consta_check(void)u8 *p; u8 res;if(atk_8266_quit_trans()return 0;/退出透傳atk_8266_send_cmd(AT+CIPSTATUS,:,50);/發(fā)送 AT+CIPSTATUS 指令,查詢連接狀態(tài) p=atk_8266_check_cmd(+CIPSTATUS:);res=*p;/得到連接狀態(tài) return res;/獲取 STA 或者 AP 模式下的 ip 地址 /ipbuf:ip 地址輸出緩存區(qū) void atk_8266_
38、get_wanip(u8* ipbuf)u8 *p,*p1;if(atk_8266_send_cmd(AT+CIFSR,OK,50) /獲取 WAN IP 地址失敗 ipbuf0=0; return;p=atk_8266_check_cmd(); p1=(u8*)strstr(const char*)(p+1),);*p1=0; sprintf(char*)ipbuf,%s,p+1);/獲取 AP+STA ip 地址并在指定位置顯示 /ipbuf:ip 地址輸出緩存區(qū) void atk_8266_get_ip(u8 x,u8 y)u8 *p; u8 *p1; u8 *p2;u8 *ipbuf;
39、 u8 *buf;p=mymalloc(SRAMIN,32);/申請 32 字節(jié)內(nèi)存 p1=mymalloc(SRAMIN,32);/申請 32 字節(jié)內(nèi)存 p2=mymalloc(SRAMIN,32);/申請 32 字節(jié)內(nèi)存 ipbuf=mymalloc(SRAMIN,32);/申請 32 字節(jié)內(nèi)存 buf=mymalloc(SRAMIN,32);/申請 32 字節(jié)內(nèi)存 if(atk_8266_send_cmd(AT+CIFSR,OK,50)/獲取 WAN IP 地址失敗 else*ipbuf=0;p=atk_8266_check_cmd(APIP,); p1=(u8*)strstr(cons
40、t char*)(p+6),); p2=p1;*p1=0; ipbuf=p+6;sprintf(char*)buf,AP IP:%s 端口:%s,ipbuf,(u8*)portnum); Show_Str(x,y,200,12,buf,12,0);/顯示 AP 模式的 IP 地址和端口 p=(u8*)strstr(const char*)(p2+1),STAIP,);p1=(u8*)strstr(const char*)(p+7),);*p1=0; ipbuf=p+7;sprintf(char*)buf,STA IP:%s 端口:%s,ipbuf,(u8*)portnum); Show_Str
41、(x,y+15,200,12,buf,12,0);/顯示 STA 模式的 IP 地址和端口 myfree(SRAMIN,p);/釋放內(nèi)存 myfree(SRAMIN,p1);/釋放內(nèi)存 myfree(SRAMIN,p2);/釋放內(nèi)存 myfree(SRAMIN,ipbuf);/釋放內(nèi)存 myfree(SRAMIN,buf);/釋放內(nèi)存 其中 atk_8266_consta_check 函數(shù),用于檢查當(dāng)前連接(TCP/UDP)是否建立(或存在); atk_8266_get_wanip 函數(shù),用于獲取模塊 STA 模式或者 AP 模式下的 IP 地址及MAC 地址; atk_8266_get_ip
42、 函數(shù),用于獲取模塊 AP+STA 模式下的 IP 地址及 MAC 地址。 atk_8266_send_cmd(AT+CIPMODE=0,OK,200); /關(guān)閉透傳模式 Show_Str(40,55,200,16,未檢測到模塊!,16,0); delay_ms(800); LCD_Fill(40,55,200,55+16,WHITE); Show_Str(40,55,200,16,嘗試連接模塊.,16,0);while(atk_8266_send_cmd(ATE0,OK,20);/關(guān)閉回顯atk_8266_mtest_ui(32,30);while(1)delay_ms(10); atk_8
43、266_at_response(1);/檢查 ATK-ESP8266 模塊發(fā)送過來的數(shù)據(jù),及時上傳給電腦 key=KEY_Scan(0); if(key)LCD_Clear(WHITE); POINT_COLOR=RED;switch(key)case 1:/KEY0Show_Str_Mid(0,30,ATK-ESP WIFI-AP+STA 測試,16,240);Show_Str_Mid(0,50,正在配置 ATK-ESP8266 模塊,請稍等.,12,240);atk_8266_apsta_test();/AP+STA 測試 break;/退出透傳/檢查 WIFI 模塊是否在線while(a
44、tk_8266_send_cmd(AT,OK,20)atk_8266_quit_trans();/ATK-ESP8266 模塊測試主函數(shù) void atk_8266_test(void)u8 key; u8 timex;POINT_COLOR=RED;Show_Str_Mid(0,30,ATK-ESP8266 WIFI 模塊測試,16,240);最后我們看下 atk_8266_test,該函數(shù)代碼如下: atk_8266_mtest_ui(32,30); timex=0;if(timex%20)=0)LED0=!LED0;/200ms 閃爍timex+;/WK_UP/WIFI AP 測試/WI
45、FI STA 測試atk_8266_wifista_test(); break;case 4:atk_8266_wifiap_test(); break;Show_Str_Mid(0,30,ATK-ESP WIFI-STA 測試,16,240);Show_Str_Mid(0,50,正在配置 ATK-ESP8266 模塊,請稍等.,12,240);/KEY1case 2:該函數(shù)是 ATK-ESP8266 模塊測試的主程序,先檢查模塊是否存在,在檢測模塊正常后, 然后初始化模塊為 AP 模式,接著進入模式選擇界面,最后通過按鍵選擇進入對應(yīng)的子功能進行測試, 通過三個子功能測試函數(shù): atk_826
46、6_apsta_test 、atk_8266_wifista_test 和atk_8266_wifiap_test 進行測試。 common.c 我們就介紹到這里,接下來,我們看看 apsta.c 里面的代碼,該文件里面就一個函數(shù): sprintf(char*)p,AT+CWSAP=%s,%s,1,4,wifiap_ssid,wifiap_password);/設(shè)置無線參數(shù):ssid, atk_8266_send_cmd(p,OK,1000);/設(shè)置 AP 模式參數(shù) /連接狀態(tài) /申請 32 字節(jié)內(nèi)存 /設(shè)置 WIFI AP+STA 模式,這幾個參數(shù)看自己喜好設(shè)置/加速第一次獲取鏈接狀態(tài) p=
47、mymalloc(SRAMIN,100); atk_8266_send_cmd(AT+CWMODE=3,OK,50);/設(shè)置模塊 AP 模式的WIFI 網(wǎng)絡(luò)名稱/加密方式/IP 緩存u8 ipbuf16; u8 *p;u16 t=999; u8 res=0; u16 rlen=0; u8 constate=0;/ATK-ESP8266 AP+STA 模式測試/用于測試 TCP/UDP 連接 /返回值:0,正常 /其他,錯誤代碼 u8 atk_8266_apsta_test(void)u8 netpro; u8 key=0; u8 timex=0; /設(shè)置連接到的 WIFI 網(wǎng)絡(luò)名稱/加密方式/
48、,這幾個參數(shù)需要根據(jù)您自己的路由 / 器 設(shè) 置 進 行 修 改 ! sprintf(char*)p,AT+CWJAP=%s,%s,wifista_ssid,wifista_password);/設(shè)置無線參數(shù):ssid, atk_8266_send_cmd(p,WIFI GOT IP,1000);/連接目標(biāo)路由器while(atk_8266_send_cmd(AT+CIFSR,STAIP,20);/檢測是否獲得 STA IP while(atk_8266_send_cmd(AT+CIFSR,APIP,20);/檢測是否獲得 AP IP LCD_Clear(WHITE);POINT_COLOR=
49、RED;Show_Str(30,30,200,16,ATK-ESP AP+STA 模式測試,16,0);atk_8266_send_cmd(AT+CIPMUX=1,OK,50);/0:單連接,1:多連接delay_ms(500);sprintf(char*)p,AT+CIPSERVER=1,%s,(u8*)portnum); atk_8266_send_cmd(p,OK,50);/開啟 Server 模式,端為 8086 delay_ms(500);atk_8266_send_cmd(AT+CIPSTO=1200,OK,50);/設(shè)置服務(wù)器超時時間PRESTA:netpro=atk_8266_
50、netpro_sel(50,30,(u8*)ATK_ESP8266_CWMODE_TBL0);/AP+STA 模式網(wǎng)絡(luò)模式選擇 if(netpro&0X02)/STA UDPLCD_Clear(WHITE); POINT_COLOR=RED;Show_Str_Mid(0,30,ATK-ESP WIFI-STA 測 試 ,16,240);Show_Str(30,50,200,16, 正 在 配 置 ATK-ESP 模 塊 , 請 稍 等 .,12,0); if(atk_8266_ip_set(WIFI-STA 遠(yuǎn)端UDP IP 設(shè)置,UDP 模式,(u8*)portnum,ipbuf)goto
51、PRESTA;/IP 輸入 sprintf(char*)p,AT+CIPSTART=0,UDP,%s,%s,ipbuf,(u8*)portnum);/配置目標(biāo) UDP 服務(wù)器,及 ID 號,STA 模式下為 0 LCD_Clear(WHITE);Show_Str_Mid(0,30,ATK-ESP WIFI-STA 測 試 ,16,240);Show_Str(30,50,200,16,正在配置 ATK-ESP 模塊,請稍等.,12,0); atk_8266_send_cmd(p,OK,200); netpro=atk_8266_mode_cofig(netpro);/AP 模式網(wǎng)絡(luò)模式配置 el
52、se/TCPif(netpro&0X01)/STA TCP ClientLCD_Clear(WHITE); POINT_COLOR=RED;Show_Str_Mid(0,30,ATK-ESP WIFI-STA 測 試 ,16,240);Show_Str(30,50,200,16,正在配置 ATK-ESP 模塊,請稍等.,12,0); if(atk_8266_ip_set(WIFI-STA 遠(yuǎn)端 IP 設(shè)置,(u8*)ATK_ESP8266_WORKMODE_TBLnetpro,(u8*)portnum,ipbuf)goto PRESTA;/IP 輸入 sprintf(char*)p,AT+CI
53、PSTART=0,TCP,%s,%s,ipbuf,(u8*)portnum);/配置目標(biāo) TCP 服務(wù)器,及 ID 號,STA 模式下為 0 while(atk_8266_send_cmd(p,OK,200)LCD_Clear(WHITE); POINT_COLOR=RED;Show_Str_Mid(0,40,WK_UP: 返 回 重 選 ,16,240); Show_Str(30,80,200,12,ATK-ESP 連接 UDP 失敗,12,0); /連接失敗 key=KEY_Scan(0); if(key=4)goto PRESTA;netpro=atk_8266_mode_cofig(netpro);/AP 模式網(wǎng)絡(luò)模式配置 else netpro=atk_8266_mode_cofig(netpro);/TCP SERVER 不用配置 LCD_Clear(WHITE); POINT_COLOR=RED;Show_Str_Mid(0,30,ATK-ESP WIFI-STA+AP 測 試 ,16,240);Show_Str(15,50,200,1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫巡檢報告
- 2025年汝州職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年朔州陶瓷職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專項07 用轉(zhuǎn)化思想求不規(guī)則圖形的角度
- 專題01 先秦時期:中國境內(nèi)早期人類與文明的起源、早期國家與社會變革(練習(xí))
- 中班戶外主題活動策劃方案五篇
- 幼兒園綜治宣傳月活動策劃方案三篇
- 公司企業(yè)管理咨詢合同
- 擋土墻施工合同
- 車聯(lián)網(wǎng)技術(shù)推廣項目合同
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 國旗班指揮刀訓(xùn)練動作要領(lǐng)
- 春季安全開學(xué)第一課
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
- 肖像繪畫市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報告
- 2021-2022學(xué)年遼寧省重點高中協(xié)作校高一上學(xué)期期末語文試題
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 中日合同范本
評論
0/150
提交評論