Domanda

Non riesco a leggere i dati seriali dal microcontrollore ARM LPC2378. Dovrò usare UART o qualsiasi porta GPIO può essere usata ?? qualcuno ha il codice c per questo ??

È stato utile?

Soluzione

È tecnicamente possibile usare una porta GPIO, ma il tuo software è responsabile per il bit timing, l'inquadramento, il controllo degli errori, ecc. Viene spesso chiamato " bit-banging " dato che il tuo codice deve fare ogni bit, e quindi richiede molta CPU. Per velocità di trasmissione dati inferiori, è possibile eseguirlo da un interrupt del timer.

L'uso di un UART è molto più semplice: l'UART fa il duro lavoro di bit timing, framing, controllo degli errori, ecc.

Secondo la scheda tecnica LPC2378 , il microcontrollore ha 4 UART. Quindi usare un UART è la strada da percorrere. Con quale pin entrano i tuoi dati seriali? I dati seriali devono essere collegati a un pin che può connettersi a uno dei 4 UART. Dovrai impostare alcuni registri sul microcontrollore per configurarlo per l'utilizzo di UART:

  • Abilita UART e le sue impostazioni (molte impostazioni lì)
  • Imposta quale pin è l'ingresso per l'UART (forse)
  • Alcune altre impostazioni dei pin

All'inizio, puoi provare a eseguire il polling di UART: leggi il suo byte "RX disponibile" " flag fino a quando non dice "è disponibile un byte", quindi leggi il byte dal registro byte ricevuti. Leggi anche il registro dei flag di errore RX per vedere se ci sono errori.

Dopo aver funzionato, puoi lavorare per far funzionare gli interrupt RX, quindi viene generato un interrupt di ricezione per gestire i dati in arrivo.

Questo genere di cose richiede del tempo di lettura in manuale utente e datasheet . Buon divertimento!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top