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