|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2002
Messaggi: 83
|
[c++] ARDUINO, impostare una comunicazione seriale in c++/linux
Dato che tutto è un file sotto linux ho provato a leggere i dati inviati da ARDUINO tramite la porta /dev/ttyACM0 come se fosse un normale file attraverso questo codice da me scritto (che è ridicolo
Codice:
#include <fstream>
#include <iostream>
using namespace std;
int main(){
fstream fd;
string s;
int i=1;
fd.open("/dev/ttyACM0",ios::in|ios::out);
while (i<1e3){
fd>>s;
cout<<s<<"xx"<<s.length()<<"\n";
i++;
}
fd.close();
return 0;
}
OPEN “COM1:2400,N,8,1” FOR OUTPUT AS #1 a distanza di trent'anni non dovrebbe essere più semplice??
Ultima modifica di norih43 : 03-06-2011 alle 21:00. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
|
la domanda ora è: linux o windows ?
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2002
Messaggi: 83
|
linux ovviamente ( /dev/ttyACM0)
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
io la farei così
Codice:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream fd;
fd.open ("/dev/ttyACM0", ifstream::in);
while (fd.good())
cout << (char) fd.get();
fd.close();
return 0;
}
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2002
Messaggi: 83
|
La soluzione di pabloski lavora ma è equivalente alla mia (anche se non conoscevo la funzione fstream.good() grazie)... ho notato che quando non funziona resta il led TX acceso.... secondo me è da reinizializzare la porta seriale... come si può fare?
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
se ho capito bene si tratta dello stesso problema |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:15.




















