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

標題: 單片機串口數據解析方法 [打印本頁]

作者: jindizhiwa    時間: 2020-4-22 22:17
標題: 單片機串口數據解析方法
接收字母開頭(不分大小寫)不定長度的字符串,然后解析做出反饋
字符串基本規格類型主要有3種:
單條命令格式 :ansq;                        ansq?
                       Ansq+參數
結束符號: \r\n

最終串口接收字符串是: 命令+結束符  ======》 CMD(X,Y,'ABCD字符不定長',W); \r\




在程序中怎么處理這些指令容易讓人看懂,容易修改、維護?

作者: wulin    時間: 2020-4-23 06:57
解析串口數據串的前提是制定或了解已確定的通訊協議,空談解析一段不定長度的字符串,只能是說者泛泛,聽者茫茫,毫無實際意義。給你一個示例程序,不一定能解答你的所有疑問,但可以為你提供解決問題的一個思路。
串口發收數據串--甲醛檢測.zip (429.56 KB, 下載次數: 84)



作者: jindizhiwa    時間: 2020-4-23 22:30
是我沒說清,串口接收的指令以字母開頭(不分大小寫),指令長度不定,結束符號是 \r\n。單片機解析指令后做出反饋。
設置類的指令可以跟?進行查詢。比如LIMIT指令:接收的是LIMIT+參數,或LIMIT?兩條。

指令較多,在程序中怎么處理這些指令容易讓人看懂,容易修改、維護?
指令示例:

3字節指令
void IDN()  //返回版本號等
{
          const char *ver="60V/2A,Ver1.0.0,SN2020-5-18";

}
4字節指令
void ARST()//功能:故障報警繼電器復位
{
       
}
5字節指令
void FAULT()//查詢運行故障狀態
{
       
}
5或6字節
void LIMIT()//設置輸出控制設置參數限制值
{
       
}
void OUTP(char *rev)//設置/查詢電源啟動/停止
{
   if(rev[4]==0)
                 
         else if(rev[4]==1)
                  //reboot(b_shutdown);
         else if(rev[4]=='?')
                  
}
8字節指令
void SHUTDOWN()
{
       
}
void STATE()
{
       
}




作者: 大漠落日    時間: 2024-3-3 17:28
這個太兒科了,有沒有復雜的,象AT命令解析的例子




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费成人黄色网址 | 中文字幕高清 | 91观看| 久久香蕉精品 | japanese极品丰满少妇 | 日韩专区在线观看 | 精品免费在线观看 | 亚洲一区二区三区四区在线 | 国产伦精品一区二区 | 一级黄色片免费看 | 久久国产美女 | 一级黄色大片 | 成年人毛片| 成人a视频 | a级成人毛片 | 九月丁香婷婷 | 国产免费高清视频 | 神马午夜视频 | 成人免费看 | 精品日韩一区 | 一色桃子av | 欧美国产精品一区二区 | 国产伦精品一区二区三区免费 | 黄色免费一级片 | 黄网免费 | 日韩视频在线播放 | 特黄aaaaaaaaa真人毛片 | 国产一区二区三区视频 | 亚洲一区二区av | 亚洲天堂免费 | 亚洲欧美精品一区 | 国产999视频| 国产91免费 | 韩国三级中文字幕hd久久精品 | 欧美天天 | 中文字幕第一区 | 性做久久久久久久免费看 | 精品亚洲一区二区三区四区五区 | 午夜国产一区 | 黄色在线观看免费 | 超碰在线成人 |