|
手機(jī)控制由易安卓5.8編寫的。
APP原理圖與線路圖由PADS9.5編輯。
一些調(diào)試工具由易語言編輯。
http://www.zg4o1577.cn/bbs/dpj-54638-1.html 單路
http://www.zg4o1577.cn/bbs/dpj-54161-1.html 四路
模擬315M/433M 2272解碼程序
工作頻率:72M
說明:10路繼電器輸出,10LED指示,1LED電源指示,1微動開關(guān)K1。
按K1進(jìn)入編輯模式,LED指示燈全亮。
在編輯模式下 ,按下遙控器鈕,LED1亮>>LED2亮>>....>>LED10亮>>全亮(此模式存儲的遙控碼是關(guān)閉所有的LED)>>退出編輯模式。
在編輯模式下 ,按K1退出編輯模式或存儲有效的遙控碼。
在編輯模式下 ,長按K1 (3S) 調(diào)整遙控模式。
在正常模式下,長按K1 (3S) 刪除所有存儲的遙控碼。
在正常模式下 , 按下遙控器鈕,及相應(yīng)的LED.繼電器亮滅。
注意: 同一條遙控碼 在同一個LED上存兩條,相當(dāng)于亮了又滅,無動作。
優(yōu)點(diǎn): 能接收2262的1.2M-4.7M電阻編碼,幾乎所有的315M遙控器都兼容。
由于定時讀引腳,抗干擾能力強(qiáng) ,和硬件解碼距離無區(qū)別。
成品由洞洞板制作。
STM32選用STM32103C8T6最小系統(tǒng)開發(fā)板。
WiFI模塊選用ESP8266 ESP-07,軟件升級到V1.62版。
無線模塊選用315M或433M超外差模塊
3.3V選用DC12-DC3.3轉(zhuǎn)換模塊
51hei拼音截圖20210415094009.png (122.48 KB, 下載次數(shù): 77)
下載附件
2021-4-15 09:55 上傳
51hei拼音截圖20210415094040.png (117.15 KB, 下載次數(shù): 75)
下載附件
2021-4-15 09:56 上傳
所有資料51hei提供下載:
STM32-v1.62.7z
(5.07 MB, 下載次數(shù): 77)
2021-4-15 18:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
8266升級資料.7z
(1.39 MB, 下載次數(shù): 57)
2021-4-15 18:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
單片機(jī)源程序如下:
- /*******************************************************************************
- *
- * 軟件功能: 遙控解碼10# 主頻72M
- *
- *******************************************************************************/
- #include "stm32f10x.h"
- //-----變量&常量定義-----
- #define DaiMaTiaoSu_100 100 //遙控條數(shù)
- #define YaoKongSu_5 10 //遙控碼長度
- #define Key_600 600 //長按鍵時間計(jì)數(shù),3秒時間
- u16 T2RL = 124*2-1; //定時器重裝值;
- u8 ircode[9]; //[0-5]2次脈沖解碼值 [6-8]解碼最終值
- u8 Tm1[50]; //0空位 1-24遙控碼脈沖 25同步碼 26-49第二次遙控碼脈沖
- u8 Tm_bz[]={ 31 ,156 ,114 ,134 ,2 ,16 ,8 };
- //基準(zhǔn):0-1同步碼時間范圍, 2-3 同步碼124a范圍, 4-5 寬窄脈沖碼4-12a范圍, 6 寬窄脈沖
- 碼中間值
- //遙控碼發(fā)射時鐘=1a, 1M電阻:1a=31us 5M電阻:1a=156us
- //由于stc89c52單片機(jī)中斷時間內(nèi)執(zhí)行指令數(shù)少,只能到 1a=60us.用stc15fXX是1T模式(同時鐘頻率
- 下是89c52單片機(jī)6-12倍)————全兼容
- u16 E2BiaoJi; //Flash空位位置值
- u8 ms =1; //防止誤觸延時&計(jì)數(shù)
- u8 BJ_500ms = 0; //解碼值有效時間0.5S標(biāo)記
- u8 BJ_PulsrGood = 0; //脈沖讀完標(biāo)記
- u8 BJ_Traversal=0; //Flash遍歷標(biāo)記
- u8 BJ_edit = 0; //進(jìn)入編輯標(biāo)記
- u8 BJ_KeyLong=0; //長按鍵標(biāo)記
- u8 BJ_KeyShort=0; //短按鍵標(biāo)記
- u16 Key_JiShu=0; //長按鍵3秒計(jì)數(shù)
- u16 JIBU=0; //按鍵第幾步標(biāo)記
- u16 LED_ZT=0; //LED狀態(tài)緩存標(biāo)記
- u32 Net_No=0; //定時聯(lián)網(wǎng)檢測處理
- u8 WiFi_200=0; //200MS標(biāo)記
- u8 WiFi_OK=0; //模塊返回?cái)?shù)據(jù)與比對值匹配標(biāo)記
- u8 WiFi_Hao; //返回消息的通道號
- u8 Index; //比對值索引;
- u8 WiFi_Step=0; //模塊啟動執(zhí)行到的步數(shù)
- /*以下為WiFi模塊接收處理函數(shù)*/
- void WiFi_initial(void); //模塊初始化流程
- void WiFi_initial0(u8 dat,u8 Ten, u8 sx);//AT初始化流程_子程序
- void WiFi_initial1(u8 dat,u8 Ten, u8 sx);//AT初始化流程_子程序
- void Command(u8 *ptr, u8 len); //命令的匯總處理,收到的數(shù)據(jù)格式
- void AT_CIPSEND(u8 *ptr,u8 len); //AT命令組裝并發(fā)送
- u8 LED_state(u8 *ptr,u8 len); //LED狀態(tài)提取準(zhǔn)備返回
- void Check(u8 *ptr, u8 len, u8 Ten); //位異或校驗(yàn)
-
-
- /*以下為模擬2262解碼調(diào)用函數(shù) */
- void Configuration_2262(void);//初始化
- void BM_KeyLong(void); //長按鍵處理_刪除遙控碼及處理遙控條碼輸出狀態(tài)
- void BM_KeyShort(void); //短按鍵處理_進(jìn)入退出編輯模式,存儲遙控條碼等功能
- void LED_add(void); //編輯模式下LED順序累加
- void Decoding(u8 add); //脈沖解碼 ,接收到脈沖編譯成遙控條碼
- void BM_PulsrDecoding(void); //脈沖解碼>>接收到的兩次編碼比較>>接收的編碼和防止誤
- 觸延時編碼比較
- void LED_KeyLong_State(void); //LED長按鍵后的狀態(tài)
- void BM_Flash_Traversal(void); //Flash中查找對應(yīng)值
- void LED_Mode(u16 add,u16 add1); //LED動作程序,LED模式變換
- /*************************************************
- 函數(shù): int main(void)
- 功能: main主函數(shù)
- 參數(shù): 無
- 返回: 無
- **************************************************/
- int main(void)
- {
- RCC_Configuration(); //復(fù)位和時鐘控制配置72M
- GPIO_Configuration(); //初始化GPIO配置
- delay_init(SYSCLK_MHZ); //SysTick定時器做為延時函數(shù)的初始化程序
- (SYSCLK_MHZ=72)
- ConfigTimer_TIM2(124); //定時器2配置 1ns
- ConfigTimer_TIM3(5); //定時器3配置 1ms
- USART1_Configuration(115200); //初始化USART1配置
- IWDG_Init_1S(); //初始化獨(dú)立看門狗時間:1S
- Configuration_2262(); //2622模擬解碼初始化
- //printf("向串口輸出字符串\r\n");
- while (1)
- { //AT流程用
- UartDriver(); //調(diào)用串口驅(qū)動 監(jiān)測數(shù)據(jù)幀的接收 有命令
- 到達(dá)時
- if(WiFi_200) //200ms進(jìn)入流程標(biāo)記
- {
- WiFi_200=0; //200ms標(biāo)記
- WiFi_initial(); //模塊初始化&工
- 作流程
- LED_KeyLong_State(); //LED在長按按
- 鍵下的狀態(tài)
- }
- //2262模擬解碼流程用
- if(BJ_PulsrGood) //脈沖讀完標(biāo)記
- { BJ_PulsrGood=0; BM_PulsrDecoding(); } //2622模擬解碼用
- if(BJ_Traversal) //Flash遍歷標(biāo)記
- { BJ_Traversal=0; BM_Flash_Traversal(); }//Flash中查找對應(yīng)值
-
- if(BJ_KeyLong) //長按鍵標(biāo)記
- { BJ_KeyLong=0; BM_KeyLong(); }
- if(BJ_KeyShort) //短按鍵標(biāo)記
- { BJ_KeyShort=0; BM_KeyShort(); }
- }
- }
- /*===============================================================================
- 以下為AT控制流程
- ===============================================================================*/
- /*************************************************
- 函數(shù): void WiFi_initial()
- 功能: AT初始化流程 200ms進(jìn)入一次中斷標(biāo)記進(jìn)入
- 參數(shù): 無
- 返回: 無
- **************************************************/
- void WiFi_initial(void)
- {
- switch (WiFi_Step) //第幾步索引值
- { //--------------------正常模式-入口---------------------------------
- case 0:
- WiFi_initial0(0,1,0);//AT就緒查詢
- break;
- case 1:
- WiFi_initial0(1,2,0);//關(guān)閉回顯
- break;
- case 2:
- WiFi_initial0(7,3,0);//啟用多線程
- break;
- case 3:
- WiFi_initial0(8,4,0);//啟用服務(wù)器功能
- break;
- case 4:
- Index=0; WiFi_Step=5;//比對值索引
- break;
- case 5:
- if(Net_No++>1500)
- {Net_No=0; WiFi_Step=6; }//5分鐘聯(lián)網(wǎng)檢測
- break;
- case 6:
- WiFi_initial0(11,7,4); //查詢網(wǎng)絡(luò)連接信息
- break;
- case 7:
- WiFi_initial1(3,13,4); //掃描當(dāng)前可用的 AP
- break;
- //------------------------退出設(shè)置模式-入
- 口-----------------------------
- case 10:
- WiFi_initial1(0,11,0); //配置 ESP8266 SoftAP 當(dāng)前參數(shù),保存到
- Flash
- break;
- case 11:
- WiFi_initial1(1,12,0); //設(shè)置 ESP8266 Station 的 IP 地址,保存到
- Flash
- break;
- case 12:
- WiFi_initial1(2,13,0); //連接 AP,保存到 Flash
- break;
- case 13:
- WiFi_initial0(9,0,0); //重啟模塊
- break;
- //----------------連接臨時AP后查詢反饋-入
- 口---------------------------------
- case 15:
- WiFi_initial0(0,16,15);//AT就緒查詢
- break;
- case 16:
- if(BJ_edit)
- WiFi_initial0(10,28,28);//查詢指令連接AP情況
- else
- WiFi_initial0(10,0,0);//查詢指令連接AP情況
- break;
- //------------------設(shè)置模式-入口-----------------------------------
- case 20:
- WiFi_initial0(0,21,20);//AT就緒查詢
- break;
- case 21:
- WiFi_initial0(2,22,20);//設(shè)置為AT工作模式
- break;
- case 22:
- WiFi_initial0(3,23,20);//設(shè)置SoftAP配置
- break;
- case 23:
- WiFi_initial0(4,24,20);//設(shè)置上電時動連接 AP
- break;
- case 24:
- WiFi_initial0(5,25,20);//退出與AP的連接
- break;
- case 25:
- WiFi_initial0(6,26,20);//設(shè)置DHCP,不保存到Flash,確保自動獲取IP
- break;
- case 26:
- WiFi_initial0(7,27,20);//啟用多線程
- break;
- case 27:
- WiFi_initial0(8,28,20);//啟用服務(wù)器功能
- break;
- case 28:
- Index=0; WiFi_Step=29;//比對值索引
- break;
- default:
- break;
- }
- }
- /*************************************************
- 函數(shù): void WiFi_initial0(u8 dat,u8 Ten, u8 sx)
- 功能: AT初始化流程_ 發(fā)往WiFi模塊命令用
- 參數(shù): dat-命令索引值 Ten—成功跳轉(zhuǎn)值索引 sx=失敗跳轉(zhuǎn)值
- 返回: 無
- **************************************************/
- void WiFi_initial0(u8 dat,u8 Ten, u8 sx)
- {
- static u8 WiFi_0[] = "AT\r\n"; //AT就緒查詢
- static u8 WiFi_1[] = "ATE0\r\n"; //關(guān)閉回顯
- static u8 WiFi_2[] = "AT+CWMODE_DEF=3\r\n"; //設(shè)置為AT模式,保存到
- Flash
- static u8 WiFi_3[] = "AT+CWSAP_CUR=\"AT-01\",\"12345678\",8,4\r\n"; //配置
- ESP8266 SoftAP 當(dāng)前參數(shù),不保存到Flash
- static u8 WiFi_4[] = "AT+CWAUTOCONN=1\r\n"; //設(shè)置上電時自動連接 AP
- ,保存到Flash
- static u8 WiFi_5[] = "AT+CWQAP\r\n"; //退出與AP的連接
- static u8 WiFi_6[] = "AT+CWDHCP_CUR=1,1\r\n"; //設(shè)置 DHCP,不
- 保存到Flash ,確保自動獲取IP
- static u8 WiFi_7[] = "AT+CIPMUX=1\r\n"; //啟用多線程
- static u8 WiFi_8[] = "AT+CIPSERVER=1,19730\r\n"; //啟用服務(wù)器功能
- static u8 WiFi_9[] = "AT+RST\r\n"; //重啟模塊
- static u8 WiFi_10[] = "AT+CIFSR\r\n"; //查詢本地 IP 地
- static u8 WiFi_11[] = "AT+CIPSTATUS\r\n"; //查詢網(wǎng)絡(luò)連接信息
- static u8 WiFi_fasong=1; //命令發(fā)送標(biāo)記
- static u8 JiShi=0; //命令發(fā)送時間計(jì)數(shù)
- static u8 WiFi_Len[] = { sizeof(WiFi_0)-1, sizeof(WiFi_1)-1, sizeof(WiFi_2)-1,
- sizeof(WiFi_3)-1, sizeof(WiFi_4)-1, sizeof(WiFi_5)-1,
- sizeof
- (WiFi_6)-1, sizeof(WiFi_7)-1, sizeof(WiFi_8)-1, sizeof(WiFi_9)-1, sizeof(WiFi_10)-1,
- sizeof(WiFi_11)-1};
- static u8 * WiFi_Ptr[] = {&WiFi_0[0], &WiFi_1[0], &WiFi_2[0], &WiFi_3[0],
- &WiFi_4[0], &WiFi_5[0], &WiFi_6[0], &WiFi_7[0],
- &WiFi_8
- [0], &WiFi_9[0], &WiFi_10[0], &WiFi_11[0]};
- static u8 WiFi_syz[] = { 1,1,1,1, 1,1,1,1, 1,1,2,3 }; //WiFi模塊收到數(shù)據(jù)比對值
- 索引
-
- Shi_LED2=0;
- Index=WiFi_syz[dat];//比對值索引
- if(WiFi_fasong) //發(fā)送數(shù)據(jù)
- { WiFi_fasong=0; UartWrite(WiFi_Ptr[dat], WiFi_Len[dat]); }
- if(WiFi_OK) //比對成功返回標(biāo)記
- { WiFi_OK=0; WiFi_fasong=1; JiShi=0; WiFi_Step=Ten; Shi_LED2=1;return;}
- if(JiShi++>10) //超時認(rèn)定失敗
- { WiFi_fasong=1; JiShi=0; WiFi_Step=sx;}
- Shi_LED2=1;
- }
- /*************************************************
- 函數(shù): void WiFi_initial1(u8 dat,u8 Ten, u8 sx)
- 功能: AT初始化流程_ 發(fā)往WiFi模塊命令用
- 參數(shù): dat-命令索引值 Ten—成功跳轉(zhuǎn)值索引 sx=失敗跳轉(zhuǎn)值
- 返回: 無
- **************************************************/
- void WiFi_initial1(u8 dat,u8 Ten, u8 sx)
- {
- static u8 Zfc_0[]="AT+CWSAP_DEF=\"AT_01\",\""; //配置 ESP8266 SoftAP 當(dāng)前參數(shù),
- 保存到 Flash
- static u8 Zfc_1[]="12345678";
- static u8 Zfc_2[]="\",8,4\r\n";
- static u8 Zfc_3[]="AT+CWJAP_DEF=\""; //連接 AP,保存到 Flash
- static u8 Zfc_4[]="XX0XX";
- static u8 Zfc_5[]="\",\"";
- static u8 Zfc_6[]="\"\r\n";
- static u8 Zfc_7[]="AT+CIPSTA_DEF=\""; //設(shè)置 ESP8266 Station 的 IP 地址
- ,保存到 Flash
- static u8 Zfc_8[]="AT+CWLAP=\""; //掃描當(dāng)前可用的 AP
- static u8 WiFi_fasong=1; //命令發(fā)送標(biāo)記
- static u8 JiShi=0; //命令發(fā)送時間計(jì)數(shù)
- static u8 WiFi_syx[] = { 1,1,1,4 }; //WiFi模塊收到數(shù)據(jù)比對值索引
-
- u8 WiFi1[60];
- u8 WiFi1_len=0;
- u8 WiFi1_TAN=0;
-
- Shi_LED2=0;
- Index=WiFi_syx[dat] ; //比對值索引
- if(WiFi_fasong) //發(fā)送數(shù)據(jù)
- { WiFi_fasong=0;
-
- switch(dat)
- {
- case 0: WiFi1_len=Add_Merge0(WiFi1,WiFi1_len,Zfc_0);
- //配置 ESP8266 SoftAP 當(dāng)前參數(shù),保存到 Flash
- WiFi1_TAN= WiFi1_len;
- WiFi1_len=FLASH_read_8
- (FLASH_Address[2],WiFi1,WiFi1_len);//FLASH讀出密碼
- if(WiFi1_TAN==WiFi1_len)
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_1);
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_2);
- break;
- case 1: WiFi1_len=Add_Merge0(WiFi1,WiFi1_len,Zfc_7);
- //設(shè)置 ESP8266 Station 的 IP 地址,保存到 Flash
- WiFi1_TAN= WiFi1_len;
- WiFi1_len=FLASH_read_8
- (FLASH_Address[3],WiFi1,WiFi1_len);//FLASH讀出IP
- if(WiFi1_TAN==WiFi1_len)
- WiFi1_len=Add_character
- (WiFi1,WiFi1_len,'0');
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_6);
- break;
- case 2: WiFi1_len=Add_Merge0(WiFi1,WiFi1_len,Zfc_3);
- //連接 AP,保存到 Flash
- WiFi1_TAN= WiFi1_len;
- WiFi1_len=FLASH_read_8
- (FLASH_Address[1],WiFi1,WiFi1_len);//FLASH讀出賬號
- if(WiFi1_TAN==WiFi1_len)
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_4);
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_5);
- WiFi1_TAN= WiFi1_len;
- WiFi1_len=FLASH_read_8
- (FLASH_Address[2],WiFi1,WiFi1_len);//FLASH讀出密碼
- if(WiFi1_TAN==WiFi1_len)
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_1);
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_6);
- break;
- case 3: WiFi1_len=Add_Merge0(WiFi1,WiFi1_len,Zfc_8);
- //掃描當(dāng)前可用的 AP
- WiFi1_TAN= WiFi1_len;
- WiFi1_len=FLASH_read_8
- (FLASH_Address[1],WiFi1,WiFi1_len);//FLASH讀出賬號
- if(WiFi1_TAN==WiFi1_len)
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_4);
- WiFi1_len=Add_Merge0
- (WiFi1,WiFi1_len,Zfc_6);
- break;
- default:break;
- }
- UartWrite(WiFi1, WiFi1_len);
- }
- if(WiFi_OK) //比對成功返回標(biāo)記
- { WiFi_OK=0; WiFi_fasong=1; JiShi=0; WiFi_Step=Ten; Shi_LED2=1;return;}
- if(JiShi++>10) //超時認(rèn)定失敗
- { WiFi_fasong=1; JiShi=0; WiFi_Step=sx;}
- Shi_LED2=1;
- }
- /*************************************************
- 函數(shù): void UartAction(u8 *ptr, u8 len)
- 功能: 串口動作函數(shù),根據(jù)接收到的數(shù)據(jù)響應(yīng)的動作
- 參數(shù): buf-接收到的數(shù)據(jù)幀指針,len-數(shù)據(jù)幀長度
- 返回: 無
- **************************************************/
- void UartAction(u8 *ptr, u8 len)
- {
- static u8 cmd0[] = "+IPD,"; //收到數(shù)據(jù)標(biāo)識
- static u8 cmd1[] = "OK";
- static u8 cmd2[] = "STAIP,\""; //IP查詢返回標(biāo)識
- static u8 cmd3[] = "STATUS:5"; //查詢網(wǎng)絡(luò)連接信息返回標(biāo)識
- static u8 cmd4[] = "+CWLAP:"; //掃描當(dāng)前可用的AP返回標(biāo)識
- static u8 LinS[] = "@@J000.000.000.000";
- u8 cmdLen[] = { sizeof(cmd0)-1, sizeof(cmd1)-1, sizeof(cmd2)-1, sizeof(cmd3)-1,
- sizeof(cmd4)-1};
- u8 *cmdPtr[] = {&cmd0[0], &cmd1[0], &cmd2[0], &cmd3[0], &cmd4[0]};
- u8 LinS_Tem = 3;
- u8 FanHui,i;
-
- if (len >= cmdLen[Index]) //首先接收到的數(shù)據(jù)長度要不小于對比值長度
- {
- FanHui=Compare(ptr,len,cmdPtr[Index],cmdLen[Index]);
- if (FanHui>0) //查找到匹配值
- {
- switch(Index)
- {
- case 0: Command(ptr, FanHui); //數(shù)據(jù)進(jìn)一步處理
- break;
- case 1: WiFi_OK=1;
- break;
- case 2: WiFi_OK=1; //IP
- 查詢進(jìn)一步處理
- for (i=0; i<16; i++) //返
- 回臨時IP值
- { LinS[LinS_Tem++] =
- ptr[FanHui++]; }
- AT_CIPSEND
- (LinS,LinS_Tem);
- break;
- case 3: WiFi_OK=1;
- break;
- case 4: WiFi_OK=1;
- break;
- default:break;
- }
- }
- }
- }
- /*************************************************
- 函數(shù): void Command(u8 *ptr, u8 len)
- 功能: 收到數(shù)據(jù)處理 數(shù)據(jù)格式; +IPD,0,15:@@AAT_00
- 參數(shù): ptr-待處理數(shù)據(jù) len-處理的起始位
- 返回: 無
- **************************************************/
- void Command(u8 *ptr, u8 len)
- {
- static u8 Zfc_0[]="AT+CWJAP_CUR=";
- static u8 Zfc_1[]="\r\n";
- static u8 Zfc_2[]="-err";
-
- u8 HuiDa[60]; //回答字符串
- u8 HuiDa_len = 0; //回答字符串位置
- u8 GeSu; //到達(dá)數(shù)據(jù)長度
- u8 Ten; //特定標(biāo)記位置
- u16 i;
- u32 Det;
-
- //計(jì)算校驗(yàn)值位置與數(shù)據(jù)長度-------------------
- if ( ptr[len+3]==':' && ptr[len+4]=='@' )
- {
- Ten=len+5; //定位命令字位置
- GeSu =ptr[len+2]-48; //計(jì)算收到數(shù)據(jù)長度
- }
- else if (ptr[len+4]==':' && ptr[len+5]=='@' )
- {
- Ten=len+6; //定位命令字位置
- GeSu =(ptr[len+2]-48)*10;
- GeSu =GeSu+(ptr[len+3]-48); //計(jì)算收到數(shù)據(jù)長度
- }
- else
- return;
- if(GeSu<3) //收到數(shù)據(jù)長度不夠
- return;
- //校驗(yàn)數(shù)據(jù)正確性-----------------------------
- ptr[0] = ptr[Ten]; // ptr[0]作為臨時變量使用,存放收到的校驗(yàn)值
- Check(ptr, Ten, GeSu); // 計(jì)算校驗(yàn)值
- if(ptr[0] != ptr[Ten]) // 收到的校驗(yàn)值與計(jì)算的校驗(yàn)值比對
- return;
- //5分鐘聯(lián)網(wǎng)檢測-----------------------------
- Net_No=0;
- //發(fā)送數(shù)據(jù)命令頭部組裝-----------------------
- Ten++; //移到命令位
- GeSu=GeSu-3; //去除3位標(biāo)識位
- WiFi_Hao=ptr[len]; //保存收到數(shù)據(jù)的通道號,發(fā)送數(shù)據(jù)用這個通道
- HuiDa_len = Add_character(HuiDa,HuiDa_len,'@'); //待發(fā)送數(shù)據(jù)組裝
- HuiDa_len++; //校驗(yàn)值位
- HuiDa_len = Add_character(HuiDa,HuiDa_len,ptr[Ten]); //待發(fā)送數(shù)據(jù)組裝
- if(ptr[Ten]=='A') //LED狀態(tài)消息處理
- {
- if(ptr[++Ten]=='0') ptr[0]=0; else ptr[0]=1; //ptr[0]作為臨時變量
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
|
評分
-
查看全部評分
|