A mikrokontrollert a következő kapcsolással képessé tehetjük a soros vonalon való kommunikációra:
Mivel a PIC mikrokontrollerek hardverből támogatják a soros vonali kommunikációt a következő egyszerű parancsok használatával tudunk a soros vonalon adatot küldeni és fogadni. Ezeknek a C funkcióknak a nagy része az AN833-as Application Note-ban meg is található én csak összegyűjtöttem és kicsit alakítottam a kódon.
A compiler.h fájlt érdemes használni, mert kiküszüböli a Microchip és
a HiTech fordítók közti különbségeket. Az SPBRG értékének kiszámítása
automatikus csak CLOCK_FREQ változót ne felejtsük el beállítani a
compiler.h fájlban.
A következő funkciókat használhatjuk:
-void USARTInit(): egyszer kell meghívni a program elején.
Inicializálja a kontroller belső változóit.
- void USARTPut(char c): egy bájt adatot küld el a soros vonalon.
- void USARTPutString(char *s): egy 0-val lezárt stringet küld ki a
soros vonalon. Az s karaktertömb a memóriában van
- void USARTPutROMString(ROM char* str): egy 0-val lezárt stringet
küld el a soros vonalon. A karaktertömb a programmemóriában van.
- char USARTGetString(char *buffer, char bufferLen): Egy enterrel
vagy újsor karakterrel lezárt karaktersorozatot olvas be a soros
vonalról. A beolvasás azonnal leáll, ha a puffer megtelt
(bufferLen a buffer tömb mérete. A beolvasott string 0-val van
lezárva.
- char USARTIsGetReady(): Ha a bemeneti pufferben van adat, igaz
értéket ad vissza. (Az USARTGet()-el beolvashatjuk.)
- char USARTGet(): Egy bájtot olvas ki a pufferből.
A forrás letölthető
innen.