Datenübertragung über /dev/ttyACM0

OP #4681401
Lesenswert?
• ▲
▼
Hallo,

Ich versuche auf Linux Mint 17.3 eine Datenübertragung zwischen meinem 
PC und meinem Arduino herzustellen. Dafür nutze ich die C-Standard 
Bibliothek File.

Bei meiner Datenübertragung scheint es noch zu hapern. Ich kann zwar 
Datenübertragen, aber nur unregelmäßig nicht vollständing also nicht 
sicher. Natürlich wird der Code nicht perfekt sein. Ich wollte vorallem 
Fragen, ob mein Ansatz ok ist oder ich auf einem Holzweg bin. Hier mein 
Code.

Der C-Code der auf dem PC asgeführt wird:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
#include <unistd.h>
5

6
int main(){
7
  
8
        FILE *fp;
9
     
10
  char bufflen[255];
11

12
     fp = fopen("/dev/ttyACM0", "r+");
13

14
  setbuf(fp,bufflen);
15
while(1){
16
     fprintf(fp, "Hey");
17

18
  fflush(fp);
19

20
  fscanf(fp,"%s",bufflen);
21
     printf("Received: %s", bufflen );
22
        sleep(100);
23
}
24
     fclose(fp);
25
}

Hier der QuellText von meinem Arduino
1
String inData;
2

3
void setup() {
4
    Serial.begin(9600);
5
   
6
}
7

8
void loop() {
9
    while (Serial.available() > 0)
10
    {
11
        char recieved = Serial.read();
12
        inData += recieved; 
13

14
        
15
        if (recieved == 'y')
16
        {
17
            Serial.print("Arduino Received: ");
18
            Serial.println(inData);
19

20
            inData = "";
21
        }
22
    }
23
}

Schonmal Vielen Dank für eure Hilfe

Pietus3
Gast #4681727
Lesenswert?
• ▲
▼
Einfacher wäre, mit einem Terminalemulator wie cutecom die verschiedenen 
Parameter ausprobieren.

Falls es damit nicht stabil läuft, liegt es an der Hardware.

Wenn es läuft, mit stty die Parameter auslesen. Terminalemulator 
beenden. Am Anfang deines Programm diese Parameter wieder setzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren