中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ESP8266與STM32

ESP8266與STM32通信

最近想實(shí)現(xiàn)esp8266-01s系列和stm32f103c8t6之間進(jìn)行串口通信,然后在網(wǎng)上看了好多這方面的資料最終都以失敗告終。不斷嘗試下還是實(shí)現(xiàn)該功能,同時(shí)非常感謝這位博主。
博主鏈接

實(shí)現(xiàn)的最終功能是能夠通過手機(jī)連上ESP8266作為服務(wù)端模式下的wifi,讓后在手機(jī)上發(fā)送相關(guān)的指令,esp8266接收后再通過串口發(fā)送給單片機(jī) ,間接的來控制我們的外設(shè)。

esp8266常用指令介紹
具體的用法可以查看相關(guān)的esp8266的手冊(cè)
下面就只介紹一下配置三種不同模式常用的幾個(gè)指令

模式一:STA模式

 //通俗的來講 該模式就是將esp8266作為客戶端 來連接服務(wù)端(可以通過我們手機(jī)開熱點(diǎn))
 1. AT+CWMODE=1                    設(shè)置模組為STA模式。(串口助手)
 2. AT+CWLAP                 	   查詢附近 WIFI(串口助手)
 3. AT+CWJAP='nova5Pro','yin12345'   連接 WIFI(串口助手)
 4. AT+CIFSR                       查看路由器分配給模組的IP地址,例如 192.168.43.20(串口助手)
 5. AT+CIPMUX=1                    打開多連接(串口助手)
 6. AT+CIPSERVER=1,8080         設(shè)置模塊服務(wù)器端口(串口助手).
 7. 打開網(wǎng)絡(luò)調(diào)試助手進(jìn)行設(shè)置:請(qǐng)打開電腦去連接路由器的WIFI熱點(diǎn)。并且打開網(wǎng)絡(luò)調(diào)試助手,在網(wǎng)絡(luò)調(diào)試助手上輸入連接模塊的 IP和設(shè)置的端口。
 8. AT+CIPSEND=0,11                進(jìn)入數(shù)據(jù)發(fā)送模式為11個(gè)字節(jié)

在電腦終端查看當(dāng)前Ip ipconfig

記住該Ip在我們配置的時(shí)候會(huì)使用到 讓后通過網(wǎng)絡(luò)串口助手打開服務(wù)端 在使用另外一個(gè)串口助手打開就可以觀察到我們客戶端的啟動(dòng)情況 和 二者之間的數(shù)據(jù)收發(fā) 在esp8266.c中 打開我最開始注釋的就可以了

模式二:AP 模式

//AP模式就是讓我們的8266模塊作為熱點(diǎn) 讓我們來連接 實(shí)現(xiàn)局域網(wǎng)的無線控制
 1.  AT+CWMODE=2                              開啟 AP 模式(串口助手)
 2.  AT+CWSAP='ESP8266','12345678',11,0     設(shè)置模塊的 wifi 和密碼(串口助手)
 3.  AT+CIPSERVER=1,8080                     設(shè)置模塊服務(wù)器端口(串口助手),
 4.  打開電腦或者手機(jī)上的TCP助手去連接模塊建立的AP熱點(diǎn)
 5.  打開網(wǎng)絡(luò)調(diào)試助手,輸入連接模塊的 ip 和設(shè)置的端口。
 6. AT+CIFSR       查看當(dāng)下的ip 
 7.  AT+CIPSEND=0,11                          進(jìn)入數(shù)據(jù)發(fā)送模式為11個(gè)字節(jié)(串口助手)

下面串口打印出來的信息就可以觀察到我們的配置已經(jīng)成功了
并且可以看到esp8266作為服務(wù)端下的IP,我們通過手機(jī)或者網(wǎng)絡(luò)串口助手連接 
輸入該IP和我們配置的端口號(hào)就可以了
注意:

通信連接

上面就實(shí)現(xiàn)了簡(jiǎn)單的通信

模式三:STA+AP 模式

該模式就是上面兩種模式的共存模式,一般沒有用到 就不做具體介紹了感興趣的同學(xué)可以自己去試試。

最后在講一下透?jìng)髂J?/p>

透?jìng)髂J胶?jiǎn)單的來說就是實(shí)現(xiàn)我們發(fā)送的數(shù)據(jù),發(fā)送什么另一端就接收什么,可以一直發(fā)送。
如果不開啟透?jìng)髂J?,發(fā)送數(shù)據(jù)前都必須先發(fā)送指令A(yù)T+CIPSEND=num,
例如T+CIPSEND=4  //發(fā)送的數(shù)據(jù)長(zhǎng)度不能大于4 要不然在次發(fā)送的時(shí)候句處于忙的狀態(tài)。

AT+CIPMODE=<1> :進(jìn)入透?jìng)髂J?AT+CIPSEND :之后發(fā)送的所有內(nèi)容將全部當(dāng)成數(shù)據(jù)
注意:透?jìng)髦荒茉趩芜B接模式下進(jìn)行,所以在建立連接之前一定要用(AT+CIPMUX=0 設(shè)置單連接)
退出透?jìng)髂J剑?發(fā)送數(shù)據(jù)'+++'就可以了。注意:此時(shí)“+++”后面,不接“發(fā)送新行”!

c 主程序

/***************************************************/
//該程序還是借鑒前面提到的博主,后面會(huì)根據(jù)自己功能的需求進(jìn)行相應(yīng)的修改

#include 'stm32f10x.h'
#include 'bsp_usart.h'
#include 'delay.h'
#include 'led.h'
#include 'usart3.h'
#include 'string.h'
#include 'esp8266.h'
/**
  * @brief  主函數(shù)
  * @param  無
  * @retval 無
  */
int main(void)
{	
  USART_Config();
	delay_init();
	LED_Init();
	
	usart3_init(115200);

	esp8266_start_trans();	
	
	printf('初始化完成Start Test\n');
	
	USART3_RX_STA=0;
  while(1)
	{	

    if(USART3_RX_STA&0x8000)    //如果消息接收完成,則處理
		{
			if(strstr((const char*)USART3_RX_BUF,'on'))  //這里是看接收到的消息中有沒有自己設(shè)置的命令“on”,strstr()函數(shù)不會(huì)用的可以搜一下
				{
					GPIO_ResetBits(GPIOC,GPIO_Pin_13);
				}
			if(strstr((const char*)USART3_RX_BUF,'off')) 
			{
				GPIO_SetBits(GPIOC,GPIO_Pin_13);
			}
			USART3_RX_STA=0;   //消息處理完成,開始重新接收
			memset(USART3_RX_BUF,0,600);         //將接收區(qū)清0
		}

	}	
}
/*********************************************END OF FILE**********************/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
stm32 中斷串口控制LED燈
正點(diǎn)原子STM32串口通訊實(shí)驗(yàn)詳解
stm32串口程序(全)
我的STM8串口接收中斷為啥總是溢出錯(cuò)誤???
STM32之串口通信
STM32+FreeRTOS+CUBEMX
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服