Ich möchte die Kommunikation zwischen meinem Laptop und meinem Modul. Dafür erstelle ich eine Python-Datei, die einige Pakete an den UART sendet, den er lesen muss. Ich habe einen Python-Skript (Laptop), die ein Paket erstellt:Wie liest man nur die ersten beiden Zahlen? Python + UART
SOF= '24'
SEND_PLAINTEXT= '72'
SEND_KEY ='73'
RECEIVE_CIPHERTEXT='74'
SIZE_OF_FRAME= '10'
for a in range (0,1):
line_array=lines[a]
plaintxt_16b=line_array[0:32]
plaintext= '24'+'72'+'32'+plaintxt_16b
ser.write (plaintext.encode())
Das letzte Paket ist 247232ccddeeff8899aabb4455667700112233
UART das Paket lesen, indem Sie diese Zeilen Code in C unter Verwendung von:
uint8_t rx_buffer[38];
int rx_length = dev_uart_ptr->uart_read(rx_buffer, 38);
if (rx_length <38)
{
printf(rx_buffer);
}
Ich muss nur die zwei ersten Zahlen lesen, um zu testen, ob es der Anfang des Rahmens ist oder nicht. So habe ich meinen Code geändert:
uint8_t rx_buffer[2];
int rx_length = dev_uart_ptr->uart_read(rx_buffer,2);
if (rx_length <2)
{
printf(rx_buffer);
}
Das Problem ist, dass die Zahlen, die angezeigt werden, sind 33
trotz ich 24
lesen wollen, wäre ich sehr dankbar, wenn ihr mir helfen könntet.
Was macht die uart_read() Funktion? Welche Bibliotheken importieren Sie für diese Aufgabe? – Jalo
Es erlaubt nur das Lesen von der UART, – tssmokey46
Ihr Beitrag ist sehr verwirrend. Zuerst dachte ich, es wäre Python-Code, aber es scheint, dass es C/C++ - Code ist. Führst du es auf der anderen Seite des Kanals aus, nicht wahr? Wenn ja, sollten Sie die Bezeichnungen des Posts ändern und sie auf C/C++ setzen, da dies keine Python-Frage ist – Jalo