欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4573|回復: 8
收起左側

esp8226wifi模塊+單片機實現開關燈程序問題

[復制鏈接]
ID:747276 發表于 2020-5-10 18:56 | 顯示全部樓層 |閱讀模式
20黑幣
找了很多都用不了,郁悶的很大佬們可能都知道,手機發個數字‘1’給8226
然后8226發給單片機就不是‘1’這么簡單的一個字符
而是一串,+PID:1,02,1.........(大概是這個意思記不大清了應該是十位)
反正就是最后一位才是發的實際數字

問題是單片機如何能接收得到這串字符?接到后 我想應該是把這串字符存在一個數組變量里

存好后判斷這個  數組變量[9] 是1還是2還是3......

然后執行相應的功能

最后重置這個變量數組   準備接收新的

邏輯應該是這樣,但是俺不會,大佬們幫幫忙吧

回復

使用道具 舉報

ID:267719 發表于 2020-5-10 19:22 | 顯示全部樓層
把接收到的數據放到一個數組里,比如ReceiveBuffer[256].
當判斷收到上一個字節500ms后沒有新的數據來,我們認為收到了一幀數據,當前數據包結束。收到數據包后,用strstr函數去判斷是不是存在“+PID”,如果存在“+PID”表示是通訊來的數據,不是命令或狀態數據。strstr會返回“+PID”位置的指針。如果指針為NULL,表示不存在“+PID”。
然后同樣用strstr函數找到“:”,strstr函數會返回冒號位置的指針。冒號往后的數據就是你收到的數據(可根據串口接收到的長度和冒號位置計算得到實際通訊信息長度)。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:577696 發表于 2020-5-10 20:47 | 顯示全部樓層
接受到的應該是類似 +IPD,0,1:1 這樣的一串字符,冒號后面的才是你發送出去并且被它接收到的信息,所以讓單片機從冒號后面開始保存數據就可以了
回復

使用道具 舉報

ID:747276 發表于 2020-5-11 00:34 來自觸屏版 | 顯示全部樓層
carpcarey 發表于 2020-5-10 19:22
把接收到的數據放到一個數組里,比如ReceiveBuffer[256].
當判斷收到上一個字節500ms后沒有新的數據來,我 ...

您好,長度是固定的有10個字節,最后一位
  變量【9】就是實際發送的數字,我要怎么把字符串保存到一個數組里然后判斷最后一位是什么?


if(變量【9】==’1’)

       P1=~P1;
  }




希望能給出完整程序

就是接收了后,判斷其中一位到底是不是我設定好的,實際應用是判斷最后一位,也可以是任何一位



if(變量【x】==’自定義的數字’)

     某個管腳輸出低電平
  }
回復

使用道具 舉報

ID:686782 發表于 2020-5-11 00:51 | 顯示全部樓層
善用串口通訊軟件,例如sscom,netassist等。可以實時檢查發送接收的數據,對你理解這個過程很有幫助。
思路就是根據你esp8266返回的有效信息在哪一部分然后決定如何去處理這些數據。
esp8266在收到數據并轉發給單片機時的數據格式:+IPD,<client號>,<收到的字符長度>:收到的字符,比如+IPD,0,5:hello,其中+PID是固定的。你就可以根據這一點取到冒號后的數據存下來,前面那些無效字符就直接丟棄。
網上的很多我也試過,是不一定能用的。建議先使用串口助手等模擬發送,然后檢查AT指令發送是否成功,以及8266返回的信息是什么。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:420836 發表于 2020-5-11 07:16 | 顯示全部樓層
這里的人解釋得很清楚。 非常感謝!
回復

使用道具 舉報

ID:739441 發表于 2020-5-11 09:10 | 顯示全部樓層
用串口調試工具把數據接收回來,然后分析一下接收的數據,你就會發現規律了,然后再通過程序處理。
回復

使用道具 舉報

ID:367369 發表于 2020-5-13 23:13 | 顯示全部樓層
你可以將他們換過來發送數據,
服務器發送:
AT+CIPSEND=0,5\r\n      //0指連接的客戶端的編號,5指數據長度
接著再發hello
然后你的客戶端就會收到hello
這個是沒有數據頭的

回復

使用道具 舉報

ID:267719 發表于 2020-5-17 12:07 | 顯示全部樓層
小白拜拜 發表于 2020-5-11 00:34
您好,長度是固定的有10個字節,最后一位
  變量【9】就是實際發送的數字,我要怎么把字符串保存到一個 ...

思路有了,代碼就是實現思路的過程。思路有了,代碼就不用寫了吧。。。
如果接收到的幀并不是+IPD,0,1:1,而是模組返回狀態,或其他內容,那我這種思路完全能避免出現獲取到錯誤的數據。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表