comunicazione seriale
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
-
leocata
- Linux 3.x

- Messaggi: 598
- Iscritto il: mar 5 feb 2008, 22:25
- Slackware: 13.1
- Desktop: xfce 4.x
- Località: Giarre(CT)
- Contatta:
comunicazione seriale
Ho da sempre il pallino della comunicazione tramite porta seriale /dev/ttyS0 (dos: COM1) qualcuno di voi ha esperienza in c++ sull'argomento? io ho usato tramite diverse prove una libreria (ctb) che doveva essere Cross Platform su win funziona (diciamo...grosso modo) ma con linux non riesco...
- phobos3576
- Staff

- Messaggi: 2980
- Iscritto il: dom 17 apr 2005, 0:00
- Slackware: 13.1
- Kernel: 2.6.37-smp
- Desktop: KDE 4.5.3
Re: comunicazione seriale
La prima cosa da dire è che su Linux la porta seriale deve essere inizializzata; in particolare, su Slackware il file /etc/rc.d/rc.serial non ha i permessi di esecuzione per cui la seriale non viene inizializzata al boot.
Tale inizializzazione viene effettuata con un comando del tipo:
I dati relativi all'indirizzo di porta (nel mio caso 0xac00) e all'IRQ da usare (nel mio caso 17) li puoi ricavare da KInfoCenter - sezione PCI; ovviamente, è anche necessario che il supporto della seriale sia abilitato nel kernel.
Una volta effettuata l'inizializzazione, per sapere se la porta sta funzionando puoi provare a collegare un vecchio modem seriale (supportato da Linux) e effettuare il test (Interroga Modem) dall'applicazione KPPP.
Se tutto sta funzionando a dovere, puoi farti un giro in Rete dove si trova una enorme quantità di materiale sulla programmazione della seriale.
Tale inizializzazione viene effettuata con un comando del tipo:
Codice: Seleziona tutto
setserial /dev/ttyS0 port 0xac00 UART 16550A irq 17 Baud_base 921600Una volta effettuata l'inizializzazione, per sapere se la porta sta funzionando puoi provare a collegare un vecchio modem seriale (supportato da Linux) e effettuare il test (Interroga Modem) dall'applicazione KPPP.
Se tutto sta funzionando a dovere, puoi farti un giro in Rete dove si trova una enorme quantità di materiale sulla programmazione della seriale.
- Calzo
- Linux 1.x

- Messaggi: 112
- Iscritto il: sab 6 ott 2007, 22:21
- Slackware: 10.2 | 13
- Desktop: Fluxbox | KDE
- Località: MN
Re: comunicazione seriale
Di questa libreria non so... però sotto Linux o usi i device driver aperendoli con read&write e configurando la seriale con le funzioni che trovi in termios.h, oppure puoi usare ioperm() e poi andare a scrivere sul dispositivo tramite outb.leocata ha scritto:io ho usato tramite diverse prove una libreria (ctb) che doveva essere Cross Platform su win funziona (diciamo...grosso modo) ma con linux non riesco...
Bhè questo in C, ma in C++ non dovrebbero esserci differenze in tal senso.
Per la portabilità non saprei. Ho visto che esiste un wrapper multipiattaforma per le Qt (QextSerialPort) per la gertione della seriale, ma non le ho mai usate.
bye