摘要:串口調(diào)試助手默認(rèn)波特率為,在使用串口調(diào)試助手的時候如果接受到的是亂碼可以試一下其他的波特率。代碼在這提取碼總結(jié)串口調(diào)試助手的使用就不在說明了,有什么不足還請指出,謝謝。
ESP8266 WIFI串口通信模塊需要用到的資源都在這了
提取碼:lwm2
原理圖呈上,ESP8266 模塊采用串口(LVTTL)與 MCU(或其他串口設(shè)備)通信,內(nèi)置
TCP/IP 協(xié)議棧,能夠?qū)崿F(xiàn)串口與 WIFI 之間的轉(zhuǎn)換。
注:我們使用的模塊已經(jīng)安裝在板子上,模塊通過 6 個 2.54mm 間距的排針與外部連接
模塊支持串口轉(zhuǎn)WIFI STA、串口轉(zhuǎn)AP和WIFI STA+WIFI AP 的模式。
ATK-ESP8266 模塊支持 STA/AP/STA+AP 三種工作模式。
要想進(jìn)行串口通信,可以通過板載usb插口連接電腦,也可以通過 USB 轉(zhuǎn) TTL 模塊
下面是模塊連接圖
在使用USB轉(zhuǎn)TTL模塊與電腦連接之后,就可以使用串口調(diào)試助手進(jìn)行WIFI模塊的調(diào)試了。串口調(diào)試助手默認(rèn)波特率為115200,在使用串口調(diào)試助手的時候如果接受到的是亂碼可以試一下其他的波特率(9600)。
AT 指令可以細(xì)分為四種類型:
注意:
? 不是每條 AT 指令都具備上述 4 種類型的命令。
? [ ] 括號內(nèi)為缺省值,不必填寫或者可能不顯示。
? 使?雙引號表示字符串?dāng)?shù)據(jù) ”string”,例如:AT+CWSAP=“ESP756290”,“21030826”,1,4
? 波特率為 115200,串?設(shè)置如圖 2-1 所示。
? AT 指令不區(qū)分?小寫,以回?換?符結(jié)尾 /r/n。
基礎(chǔ) AT 指令列表如表 2.2.3.1 所示:
ESP8266可以連接當(dāng)前環(huán)境的熱點,與服務(wù)器建立TCP連接,傳輸數(shù)據(jù)。
一般步驟為:
AT+CWMODE=1:設(shè)置工作模式(STA模式)
AT+RST:模塊重啟(生效工作模式)
AT+CWJAP=“swd”,“12345678”:連接當(dāng)前環(huán)境的WIFI熱點(熱點名,密碼)
AT+CIPMUX=0:設(shè)置單路連接模式
AT+CIPSTART=“TCP”,“xxx.xxx.xxx.xxx”,xxxx:建立TCP連接
AT+CIPMODE=1:開啟透傳模式
AT+CIPSEND:透傳模式下,傳輸數(shù)據(jù)
+++:退出透傳模式
這里用到的串口是USART2 ,要進(jìn)行串口初始化
代碼如下:
//串口初始化//USART2 //TX:PA2 復(fù)用推挽輸出//RX:PA3 浮空輸入/上拉//1 8 0 1void Usart3_Config(uint32_t brr){ //開時鐘 WIFI_PIN_CLK_CMD(WIFI_PIN_CLK, ENABLE); WIFI_UART_CLK_CMD(WIFI_UART_CLK, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = WIFI_TX_PIN; GPIO_Init(WIFI_PIN_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = WIFI_RX_PIN; GPIO_Init(WIFI_PIN_PORT, &GPIO_InitStructure); USART_InitTypeDef USART_InitStructuer; USART_InitStructuer.USART_BaudRate = brr; USART_InitStructuer.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructuer.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_InitStructuer.USART_Parity = USART_Parity_No; USART_InitStructuer.USART_StopBits = USART_StopBits_1; USART_InitStructuer.USART_WordLength = USART_WordLength_8b; USART_Init(WIFI_UART, &USART_InitStructuer); //使能接收中斷 USART_ITConfig(WIFI_UART, USART_IT_RXNE, ENABLE); USART_ITConfig(WIFI_UART, USART_IT_IDLE, ENABLE); //配置NVIC NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = WIFI_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //使能串口 USART_Cmd(WIFI_UART, ENABLE); ESP8266_EN_CLK_INIT(ESP8266_EN_CLK, ENABLE); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = ESP8266_EN_PIN; GPIO_Init(ESP8266_EN_PORT, &GPIO_InitStructure); ESP8266_ENABLE(); }
代碼如下:
//初始化 ESP8266//成功返回 0 失敗 >0uint8_t ESP8266_Init(void){ uint8_t recv = 0; Usart3_Config(115200); Delay_ms(5000); printf("退出透傳/r/n"); ESP8266_SendCmd_RecAck("+++", NULL, 100, 1); printf(" TSET esp8266/r/n"); recv = ESP8266_SendCmd_RecAck("AT/r/n", "OK", 100, 2); if(recv) return recv; /*********添加內(nèi)容************/ recv = ESP8266_SendCmd_RecAck("AT+RST/r/n", "ready", 10000, 1); //先連接固定wifi熱點 // wifi名字 密碼 recv = ESP8266_SendCmd_RecAck("AT+CWJAP=/"xyd/",/"12345678/"/r/n", "WIFI GOT IP", 10000, 2); /****************************/ printf("1111111111111111111111111111111111111111111/r/n"); recv = ESP8266_SendCmd_RecAck("AT+RST/r/n", "ready", 10000, 1); //設(shè)置station模式 recv = ESP8266_SendCmd_RecAck("AT+CWMODE=1/r/n", "OK", 500, 1); //設(shè)置上電自動連接wifi recv = ESP8266_SendCmd_RecAck("AT+CWAUTOCONN=1/r/n", "OK", 10000, 1); printf("測試通過,等待自動接入WIFI/r/n"); recv = ESP8266_SendCmd_RecAck(NULL, "WIFI GOT IP", 20000, 1);// if(recv){//連接超時 進(jìn)入一鍵配網(wǎng)// ESP8266_ConnectHotspot();// } printf("接入WIFI成功"); return 0;}
這里的WiFi名稱和密碼要換成你自己的
//先連接固定wifi熱點 // wifi名字 密碼 recv = ESP8266_SendCmd_RecAck("AT+CWJAP=/"xyd/",/"12345678/"/r/n", "WIFI GOT IP", 10000, 2);
不要忘了在.h文件里面進(jìn)行聲明。
串口調(diào)試助手的使用就不在說明了,有什么不足還請指出,謝謝。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/123562.html
摘要:背景介紹智能語音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個重要生態(tài)成員,是一種全新的交互方式,它能夠解放雙手,隨時提供服務(wù),無須借助任何按鍵。學(xué)完該案例讓你對智能語音助手有一個全新的認(rèn)識。快來打造你的智能語音助手吧 1. 背景介紹 智能語音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個重要生態(tài)成員,是一種全新的交互方式,它能夠解...
摘要:尋思著實現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里開空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽顆粒溫濕度煙霧繼電器源碼 背景 前陣子樹莓派由于沒外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里...
摘要:尋思著實現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里開空氣凈化器。效果圖代碼家庭空氣質(zhì)量管家為傳感器口為繼電器控制口引腳初始化網(wǎng)絡(luò)串口監(jiān)聽顆粒溫濕度煙霧繼電器源碼 背景 前陣子樹莓派由于沒外殼不小心短路燒掉了。最近得手nodeMCU的板子,不僅便宜還支持串口交互式調(diào)試,很是方便。尋思著實現(xiàn)個自動化控制玩玩。自從穹頂之下的信息被普及,不僅要出門帶口罩,還要家里...
摘要:,初始化底層堆棧,創(chuàng)建默認(rèn)事件循環(huán)。,使用默認(rèn)配置創(chuàng)建對象,將連接到并注冊默認(rèn)處理程序。,為驅(qū)動初始化分配資源,如控制結(jié)構(gòu)緩沖區(qū)結(jié)構(gòu)等,這個也啟動任務(wù)。必須先調(diào)用此,然后才能調(diào)用所有其他,設(shè)置工作模式為或,默認(rèn)模式為模式。 ...
摘要:基于的與通信連接,實現(xiàn)溫濕度數(shù)據(jù)互傳,控制第一步,在實現(xiàn)將傳感器數(shù)據(jù)采集之后,并且完成配網(wǎng)步驟,可以正常通過模塊正常將數(shù)據(jù)發(fā)送到云平臺之后進(jìn)行以下閱讀,上述內(nèi)容可以跳轉(zhuǎn)到以下鏈接進(jìn)行查看具體操作。 ...
閱讀 2787·2021-11-17 09:33
閱讀 2168·2021-09-03 10:40
閱讀 522·2019-08-29 18:45
閱讀 2955·2019-08-29 16:21
閱讀 612·2019-08-29 11:11
閱讀 3394·2019-08-26 12:00
閱讀 2946·2019-08-23 18:19
閱讀 1092·2019-08-23 12:18