久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4244|回復: 8
打印 上一主題 下一主題
收起左側

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

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

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

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

然后執行相應的功能

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

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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】==’自定義的數字’)

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

使用道具 舉報

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

評分

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

查看全部評分

回復

使用道具 舉報

6#
ID:420836 發表于 2020-5-11 07:16 | 只看該作者
這里的人解釋得很清楚。 非常感謝!
回復

使用道具 舉報

7#
ID:739441 發表于 2020-5-11 09:10 | 只看該作者
用串口調試工具把數據接收回來,然后分析一下接收的數據,你就會發現規律了,然后再通過程序處理。
回復

使用道具 舉報

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

回復

使用道具 舉報

9#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 最新中文字幕 | 国产高清不卡 | 五月天激情综合网 | 二区三区视频 | 视频一区中文字幕 | www视频在线观看 | 国产精品福利久久久 | 国产精品欧美一区喷水 | 国产精品区一区二区三区 | 一色桃子av一区二区 | 久久久国产精品一区 | 鲁大师一区影视 | 一区二区三区国产好的精 | 国产精品一区二区在线播放 | 黄网在线观看 | 欧美亚洲视频 | 久久国产精品99久久久久久丝袜 | 在线视频一区二区 | 99精品久久久久 | 女同久久另类99精品国产 | 九一国产精品 | 黄免费在线 | 国产精品视频观看 | 久久99精品久久久久婷婷 | 亚洲免费在线观看 | 97伦理影院| 久草精品在线 | 国产精品日日摸夜夜添夜夜av | 手机av在线| 国产乱一区二区三区视频 | 99精品久久 | 天天操天天操 | 999精品在线| 成人毛片网 | 亚洲人成人一区二区在线观看 | 亚洲精品一区二区三区中文字幕 | 最新中文字幕在线 | 亚洲精品中文在线观看 | 一区二区三区视频免费观看 | 久久久免费毛片 | 成人免费视频 |