我需要了解如何在十六進制格式發送消息從UART例如: 味精= '99' +‘70b4c55ad8cdb7806a7b043069c4e0d8’如何將十六進制從python發送到UART?
「99'is於不同消息的開始,其餘是數據。 作爲 進口串行 進口時間
#serial port
ser = serial.Serial(
port='COM4',\
baudrate=230400,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=0)
msg=b'\x99\x70\xb4\xc5\x5a\xd8\xcd\xb7\x80\x6a\x7b\x04\x30\x69\xc4\xe0\xd8'
ser.write(msg)
time.sleep(0.4)
while True:
print(ser.read(30))
ser.close() # close ports
但我不unerstand個錯誤:
msg= b'\x99\x70\xb4\xc5\x5a\xd8\xcd\xb7\x80\x6a\x7b\x04\x30\x69\xc4\xe0\xd8'
^
IndentationError: unexpected indent
我需要再使用C langage,在第一接收的字節99 0x99比較比較。
int lenght = dev_uart_ptr->uart_read((void*)buffer,34);
if (lenght<34)
{
if buffer [0]='0x99'
}
在此先感謝。
你意識到99是一個有效的十六進制數,對不對?這使它成爲一個糟糕的開始標記。 –
@MarkRansom,我最近開始使用十六進制,uart和c,我向所有的建議和建議提出建議 – tssmokey46
關於使用字節對象有一個很好的答案,但如果你有一個十六進制字符串開始,你可以'binascii.unhexlify('99'+'70b4c55ad8cdb7806a7b043069c4e0d8')'。 – tdelaney