Normalt så kör jag denna kod. Här får jag samma resultat.bearing skrev:Blir dina sizeof verkligen rätt i den där koden?
Kör några printf för att kolla om dom verkligen är rätt.
Tror du bara får storleken på en pekare, men jag är osäker.
Read 10 bytes. Received message: 1136
Read 10 bytes. Received message: 1270,1208,
Read 12 bytes. Received message: 187,1135
Read 10 bytes. Received message:
Read 11 bytes. Received message: 1262,1242,1
Read 13 bytes. Received message:
Read 12 bytes. Received message: 1175,1152
Read 10 bytes. Received message: 60
Read 10 bytes. Received message: 1265,1243,
Read 13 bytes. Received message: 213,1136
Read 12 bytes. Received message: 248,1160
Read 10 bytes. Received message:
Read 12 bytes. Received message: 7,1208,1105
Read 10 bytes. Received message: 6
Read 12 bytes. Received message: 228,1216,115
Read 11 bytes. Received message: 99
Read 10 bytes. Received message: 24
Read 13 bytes. Received message:
Read 10 bytes. Received message: 8
Read 12 bytes. Received message: 4,1203,1115
Read 10 bytes. Received message:
Read 14 bytes. Received message: 1264,1158
Read 11 bytes. Received message: 1153
Read 12 bytes. Received message: 66,1195,1136
Read 10 bytes. Received message:
Read 10 bytes. Received message: 1168
Kod: Markera allt
/*
* Here we are going to read the USB
*/
int readUSB(struct USB* stm32) {
/*
* Reset
*/
while(1){
memset(&stm32->readBuffer, '\0', sizeof(stm32->readBuffer));
/*
* Read
*/
tcflush(stm32->serialPort, TCIFLUSH);
int receiveBytes = read(stm32->serialPort, &stm32->readBuffer, sizeof(stm32->readBuffer));
/*
* receiveBytes is the number of bytes read. receiveBytes may be 0 if no bytes were received, and can also be -1 to signal an error.
*/
if (receiveBytes < 0) {
printf("Error reading: %s", strerror(errno));
}
/*
* Print it out
*/
printf("Read %i bytes. Received message: %s\n", receiveBytes, stm32->readBuffer);
sleep(1);
}
return 0;
}