chano
26-02-2010, 16:44
spero che sappiate dirmi qualcosa perchè io son 2 giorni che non so cosa inventarmi...
devo gestire una comunicazione su porta seriale RS232 in un programma scritto in VB .NET, lo faccio tramite la classe SerialPort, e la ricezione funziona perfettamente, il problema nasce nel caso in cui voglio trasmettere un determinato valore. mi spiego meglio: alla porta rs232 è collegato un pic che dovrebbe ricevere un byte e accendere/spegnere 8 led in base al livello logico dei bit che gli arrivano. non so dire nemmeno io se funziona o no.
Se ci si riferisce alla tabella ASCII, ho notato che, trasmettendo un "carattere speciale" i led sul circuito si accendono in maniera apparentemente casuale (almeno, io non ho trovato nessuna logica nelle sequenze che ho riscontrato); invece, se trasmetto un carattere di testo, ovvero, un numero compreso tra 32 e 126, i led si accendono correttamente.
Ad esempio, se trasmetto 65, cioè il carattere "A", ottengo correttamente la sequenza 01000001, se trasmetto 1, ottengo 11111110 invece di un semplice 00000001
http://www.csiaf.unifi.it/online/principi/tables/asciistd.gif
Come mai? sapete dirmi a cosa è dovuto questo comportamento?
grazie in anticipo tutti!!!
devo gestire una comunicazione su porta seriale RS232 in un programma scritto in VB .NET, lo faccio tramite la classe SerialPort, e la ricezione funziona perfettamente, il problema nasce nel caso in cui voglio trasmettere un determinato valore. mi spiego meglio: alla porta rs232 è collegato un pic che dovrebbe ricevere un byte e accendere/spegnere 8 led in base al livello logico dei bit che gli arrivano. non so dire nemmeno io se funziona o no.
Se ci si riferisce alla tabella ASCII, ho notato che, trasmettendo un "carattere speciale" i led sul circuito si accendono in maniera apparentemente casuale (almeno, io non ho trovato nessuna logica nelle sequenze che ho riscontrato); invece, se trasmetto un carattere di testo, ovvero, un numero compreso tra 32 e 126, i led si accendono correttamente.
Ad esempio, se trasmetto 65, cioè il carattere "A", ottengo correttamente la sequenza 01000001, se trasmetto 1, ottengo 11111110 invece di un semplice 00000001
http://www.csiaf.unifi.it/online/principi/tables/asciistd.gif
Come mai? sapete dirmi a cosa è dovuto questo comportamento?
grazie in anticipo tutti!!!