亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 pyserial 和 picocom 打印僅十六進制緩沖區?

如何使用 pyserial 和 picocom 打印僅十六進制緩沖區?

吃雞游戲 2023-07-11 15:34:19
我正在嘗試通過 USB/串行端口 [ttyACM*/COM*] 讀取協議。當設備返回響應時,我應該收到具有以下模式的幀:| FF | 15 | 15 44 | 44 7D | 00 | 00 88 | 88 00 | 00 0D | 00 | 00 00 | 00 86 | 86 00 | 00 76 | 76 00 | 00 00 | 00 00 | 00 00 | 00 40| 00 | 00 A7| 有限元| (21 十六進制)我必須使用的配置如下:波特率:2400數據位:8奇偶校驗:無停止位:1握手:無現在,當我嘗試在 Linux 上使用 CuteCom 或在 Windows 上使用 HTerm 來閱讀此內容時,一切正常,并且當我將其顯示為十六進制時,我得到的框架正是我需要的。H術語:幀響應:FF 15 44 7C 00 88 00 00 7B 00 7C 00 73 00 1F 00 00 40 00 26 FE(21 十六進制)可愛通訊:幀響應:ff 15 44 00 00 78 00 00 00 00 01 00 79 00 18 00 00 8d 00 f0 fe(21 十六進制)現在為什么當我嘗試使用 picocom 讀取序列時,我無法獲取我需要的數據?皮科com:picocom -b 2400 -r -l --omap crcrlf --imap 8bithex -fn /dev/ttyACM0幀響應:ff D 82 88 81 82 y@> fe(6 十六進制?)畫面中間的奇怪人物是怎么回事?但更重要的是,當嘗試在 python 中接收幀時(我將使用它來解析包),我也無法獲得與 Cutecom/hterm 相同格式的幀:Python [代碼]:ser = serial.Serial("/dev/ttyACM0",2400,timeout=0.3, bytesize=8, parity='N',rtscts=0)ser.close()ser.open()ser.flush()ser.write(b'\xff\x09\x53\x83\x00\x00\x00\xdf\xfe')while True:    s = ser.read_until(b'\xfe')    ser.flush()    print(s)    time.sleep(3.0)Python:
查看完整描述

2 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

事實證明,Python 只是方便地將十六進制字符更改為 ASCII。但該值保持不變,因此框架可以正常使用。而 picocom 會忽略空字符。



查看完整回答
反對 回復 2023-07-11
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

Picocom 手冊頁有點令人困惑。
--imap 8bithex僅映射到十六進制字符 128-255,而不是全部

你應該使用這個:
picocom --imap spchex,tabhex,crhex,lfhex,8bithex,nrmhex

這會將所有可能的字符映射到十六進制轉錄。


查看完整回答
反對 回復 2023-07-11
  • 2 回答
  • 0 關注
  • 402 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號