「除錯」使用python與微控制器進行通訊

除錯說明:

環境:usb轉ttl線一根,通訊協議一份,STC系列微控制器一個,電腦一臺。功能:使用python傳送16進位制資料轉換成位元組流資料發給微控制器,微控制器返回16進位制資料後轉10進位制(本次測試是獲取微控制器的版本號)使用場景:可讀取rs232、rs485資料,韋根資料、開關量訊號等

程式碼:

import serialimport binascii,timeimport codecsdef comTest(send_Adata,COM,BPS): try: # 配置串列埠基本引數並建立通訊 ser = serial。Serial(port=COM,baudrate= BPS,bytesize= 8, timeout=50,stopbits=1) print (‘傳送資料:’,send_Adata) # 簡單的傳送16進位制字元 # ser。write(b‘\xFE\xFE\xFE’) send_Bdata=bytes。fromhex(send_Adata) print (‘位元組流傳送資料:’,send_Bdata) # 串列埠傳送資料 result=ser。write(send_Bdata) # 停止、等待資料 time。sleep(1) count=ser。inWaiting() if count == 0: print(‘沒有響應傳回’) print(‘等待……’) # 資料的接收 if count>0: data=ser。read(count) print (‘位元組流接收資料:’,data) if data!=b‘’: str_hex = str(binascii。b2a_hex(data))[2:-1] print(“接收資料:”,str_hex) result_str = codecs。decode(str_hex[12:]。encode(‘utf-8’), “hex”)。decode(‘utf-8’) print (“%s轉換成10進位制資料:%s”%(str_hex[12:],result_str)) #ser。flushInput() #清除快取區資料。 # 關閉串列埠 ser。close() except Exception as e: print (‘執行異常’,e)if __name__ == “__main__”: send_Adata =‘自己的通行協議’ COM = “COM3” BPS = 9600 comTest(send_Adata,COM,BPS)

執行:

「除錯」使用python與微控制器進行通訊

使用python測試結果:

「除錯」使用python與微控制器進行通訊

使用串列埠工具測試結果:

「除錯」使用python與微控制器進行通訊