要用stm32控制一個激光器,32的串口向激光器發出指令后(很多條),激光器會向32回復很多個個指令,這些指令必須被接收到,每個指令都是四個位元組,想實作這個功能的話 怎么自定義傳輸協議
uj5u.com熱心網友回復:
一,單片機給激光器發送0x20272727,激光器收到后會給單片機回復0x84845223,這個必須得收到
二,單片機再給激光器發送0x00000000,激光器收到后會
回復0x85462536,這個也必須收到
上面激光器回復給單片機的兩個指令都是固定的
三,上面是對激光器的初始化,然后激光器要切波長,
也是通過指令來的,在串口助手里輸入1550,根據1550
計算出是哪個頻道,這個有公式,然后根據頻道計算出來
切換波長需要發送的指令
uj5u.com熱心網友回復:
參考Modbus協議吧。如果只有1個激光器可以去掉地址Byte;校驗碼也可以采用簡單的異或計算不用CRC,1個Byte就夠了;自定義功能碼,資料域4個Byte。收到正確的幀后根據自定的協議再決議就好了。uj5u.com熱心網友回復:
嗯嗯 這個激光器有自己的通訊協議,腳oif-msa但是不知道怎么寫uj5u.com熱心網友回復:
自定義:幀頭+資料+校驗+幀尾。或者考慮JSON串
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122148.html
標籤:單片機/工控
上一篇:JavaScript 技術篇-一段js代碼展示可以隨滑鼠移動變換樣式的卡通人物,動態女生眼睛跟著鼠轉動
下一篇:關于樹莓派驅動舵機控制板的疑問
