一、目標(biāo)
? ? ? ? stm32f103c8t6用串口發(fā)送AT指令控制esp8266發(fā)送數(shù)據(jù)到手機(jī)APP上,同時(shí)手機(jī)也可以發(fā)送數(shù)據(jù)到stm32f103c8t6主控,控制LED的亮滅。
? ? ? ? ?將esp8266模塊的GND、VCC、TXD、RXD、CH-PD與單片機(jī)對(duì)應(yīng)引腳連接,其中TXD與RXD要反接,模塊在工作時(shí)CH-PD要處于高電平狀態(tài)。
二、串口助手實(shí)驗(yàn)過程??
????????步驟:1 esp8266配置wifi模式? AT+CWMODE=1
? ? ? ? ? ? ? ? ? ?2 esp8266重啟? AT+RST
? ? ? ? ? ? ? ? ? ?3 開啟手機(jī)熱點(diǎn)
? ? ? ? ? ? ? ? ? ?4 esp8266連接手機(jī)熱點(diǎn)? AT+CWJAP="熱點(diǎn)名稱","熱點(diǎn)密碼"
???????????????????5?esp8266設(shè)置成單路模式? AT+CIPOMUX=0? ?
? ? ? ? ? ? ? ? ? ?6?esp8266開啟透?jìng)髂J? ?AT+CIPMODE=1
? ? ? ? ? ? ? ? ? ?7 打開手機(jī)APP,建立tcp?server配置端口號(hào),點(diǎn)擊激活就可以看到服務(wù)器的ip地址
? ? ? ? ? ? ? ? ? ?8 esp8266建立TCP連接? ?AT+CIPSTART="TCP","ip地址",端口號(hào)
? ? ? ? ? ? ? ? ? ?9 進(jìn)入透?jìng)髂J?AT+CIPSEND??
? ? ? ??
????????具體作如下:
? ? ? ? 打開手機(jī)熱點(diǎn)再以下步驟
? ? ? ?在助手串口助手輸入AT指令,發(fā)送的時(shí)候注意勾選“發(fā)送新行”
配置完以上就可以打開手機(jī)app,建立一個(gè)服務(wù)端
點(diǎn)擊激活以后就會(huì)彈出ip地址,如下圖,記住ip地址?
接下來就可以建立tcp連接,輸入AT指令,填好ip地址、端口號(hào),就可以發(fā)送,返回CONNECT則連接成功,就可以接著發(fā)送進(jìn)入透?jìng)髂J降腁T指令
出現(xiàn)這個(gè)箭頭表示可以發(fā)送數(shù)據(jù)了,同時(shí)app上會(huì)出現(xiàn)esp8266連接的圖標(biāo)
到這里就配置完成,接下來就可以發(fā)送數(shù)據(jù)了。
串口助手發(fā)送數(shù)據(jù)到手機(jī)app(注意要取消勾選“發(fā)送新行”)
?app上就接收到從串口助手發(fā)送過來的數(shù)據(jù)了
?手機(jī)app發(fā)送數(shù)據(jù)到串口助手
在輸入框輸入內(nèi)容,點(diǎn)擊發(fā)送
?串口助手收到數(shù)據(jù)
三、stm32f103c8t6發(fā)送AT指令控制esp8266與手機(jī)APP通信
? ? ? ? 如果是esp8266的第一次配置,建議先用串口助手配置,直接下載代碼會(huì)連接失敗。
用串口助手配置后,重新上電會(huì)自動(dòng)連接手機(jī)熱點(diǎn),這樣就可以省下前面好幾個(gè)步驟了。
????????我用的是串口3來做收發(fā)指令。對(duì)應(yīng)引腳 TX--PB10? RX--PB11
? ? ? ? esp8266配置代碼
void esp8266_start_trans(void)//ESP8266配置
{
//第一次配置esp8266模塊需解開以下注釋 (esp8266第一次配置建議用串口助手)
/*
esp8266_send_cmd("AT+CWMODE=1","OK",50);//設(shè)置為AP模式
esp8266_send_cmd("AT+RST","ready",20);//重啟
HAL_Delay(1000);
HAL_Delay(1000);
HAL_Delay(1000);`
HAL_Delay(1000);
esp8266_send_cmd("AT+CWJAP=\"heimao\",\"840777967\"","OK",200);//連接WiFi名稱、密碼
HAL_Delay(1000);`
HAL_Delay(1000);
*/
esp8266_send_cmd("AT+CIPMUX=0","OK",20);//配置單路連接模式
HAL_Delay(1000);
esp8266_send_cmd("AT+CIPMODE=1","OK",20);//開啟透?jìng)髂J? HAL_Delay(1000);
esp8266_send_cmd("AT+CIPSTART=\"TCP\",\"192.168.234.24\",8080","OK",200);//建立TCP連接
HAL_Delay(1000);
esp8266_send_cmd("AT+CIPSEND","OK",50);//進(jìn)入透?jìng)髂J? HAL_Delay(1000);
}
接收代碼
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
UNUSED(huart);
if(huart->Instance == USART3)
{
if(Uart3_Rx_Cnt >= 255) //檢測(cè)是否溢出
{
Uart3_Rx_Cnt = 0;
memset(RxBuffer,0x00,sizeof(RxBuffer)); //清除緩存區(qū)
}
else
{
RxBuffer[Uart3_Rx_Cnt] = usart3_buffer; //接收數(shù)據(jù)緩存
Uart3_Rx_Cnt++;
}
HAL_UART_Receive_IT(&huart3, (uint8_t *)&usart3_buffer, 1);
}
}
操作步驟:
????????1 完成stm32f103c8t6與esp8266的接線
? ? ? ? 2 打開手機(jī)熱點(diǎn)
????????3 打開手機(jī)APP,建立tcp?server配置端口號(hào),點(diǎn)擊激活就可以看到服務(wù)器的ip地址
????????4 下載代碼
? ? ? ? 5 連接成功
操作展示
????????已提前開啟熱點(diǎn)
esp8266_1
點(diǎn)擊下發(fā)鏈接 內(nèi)有完整代碼文章來源:http://www.zghlxwxcb.cn/news/detail-596312.html
https://live.csdn.net/v/294693文章來源地址http://www.zghlxwxcb.cn/news/detail-596312.html
到了這里,關(guān)于ESP8266與手機(jī)相互通信 透?jìng)髂J剑⊿TM32F103C8T6 HAL庫)有APP和完整代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!