两字符帧头 接收三个字节
想接收多少就改if usart_I.Cnt == 3 : 把3改成你想要的就行长度就行
if usart_I.Cnt == 3 :
总函数
#************************************************************************#
fm.register(9, fm.fpioa.UART1_TX, force=True)
fm.register(10, fm.fpioa.UART1_RX, force=True)
uart1 = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)
class usart_I:
Read_onebytes = 0
Read_onebyte = [0]
Read_Buf = [0]*1024
Cnt = 0
recvState = 0
def usart1_protocol():
usart_I.Read_onebytes = uart1.read(1)
if usart_I.Read_onebytes :
usart_I.Read_onebyte = (usart_I.Read_onebytes).decode('utf-8')
if usart_I.recvState == 0 :
if usart_I.Read_onebyte == '#' :
usart_I.recvState = 1
elif usart_I.recvState == 1 :
if usart_I.Read_onebyte == '@' :
usart_I.recvState = 2
usart_I.Read_Buf=[0]*1024
elif usart_I.recvState == 2 :
usart_I.Read_Buf[usart_I.Cnt] = usart_I.Read_onebyte
usart_I.Cnt = usart_I.Cnt+1
if usart_I.Cnt == 3 :
usart_I.Cnt = 0
usart_I.recvState = 0
#print(usart_I.Read_Buf[0],usart_I.Read_Buf[1],usart_I.Read_Buf[2])
#************************************************************************#
接收十六进制的两帧头 接收三个字节
#************************************************************************#
fm.register(9, fm.fpioa.UART1_TX, force=True)
fm.register(10, fm.fpioa.UART1_RX, force=True)
uart1 = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)
class usart_I:
Read_onebytes = 0
Read_onebyte = [0]
Read_Buf = [0]*1024
Cnt = 0
recvState = 0
def usart1_protocol():
usart_I.Read_onebytes = uart1.readchar()
if usart_I.Read_onebytes :
#usart_I.Read_onebyte = (usart_I.Read_onebytes).decode('utf-8')
usart_I.Read_onebyte = (usart_I.Read_onebytes)
if usart_I.recvState == 0 :
if usart_I.Read_onebyte == 0x01 :
usart_I.recvState = 1
elif usart_I.recvState == 1 :
if usart_I.Read_onebyte == 0x02:
usart_I.recvState = 2
usart_I.Read_Buf=[0]*1024
elif usart_I.recvState == 2 :
usart_I.Read_Buf[usart_I.Cnt] = usart_I.Read_onebyte
usart_I.Cnt = usart_I.Cnt+1
if usart_I.Cnt == 3 :
usart_I.Cnt = 0
usart_I.recvState = 0
print(usart_I.Read_Buf[0],usart_I.Read_Buf[1],usart_I.Read_Buf[2])
#************************************************************************#