久久久久久久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://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一级黄色片免费在线观看 | 黄网站色大毛片 | 国产精品久久视频 | 中文字幕av网站 | 蜜桃传媒av| 96久久久久久 | 91久久精品日日躁夜夜躁欧美 | 亚洲一二三区在线观看 | 在线a视频 | 日韩视频在线免费观看 | 欧美黑人狂野猛交老妇 | 成人h免费观看视频 | 一本大道久久a久久精二百 欧洲一区二区三区 | 日韩成人在线观看 | 国产乱码精品一区二区三区中文 | 国产精品一区在线 | 91国产精品在线 | 欧美日韩综合一区 | 国产日韩视频 | 欧美日韩成人影院 | 成年女人免费v片 | 99热在线播放 | 国产一区二区三区在线 | 91在线视频网址 | 精品视频一区二区三区在线观看 | 日韩网 | 亚洲国产成人精品女人久久久 | 777毛片| 日韩中文一区 | 在线国产视频 | 精品国产乱码久久久久久蜜退臀 | 中文字幕第十一页 | 国产高清免费视频 | 国产精品国产a | 精品国产三级 | 男人的天堂在线视频 | 91免费在线看 | 日本久久久久久久久 | 成人福利网站 | 国产精品免费在线 | 久久精品成人 |