Mikrokontroller és RS232

A mikrokontrollert a következő kapcsolással képessé tehetjük a soros vonalon való kommunikációra:

Mikrokontroller és
RS232{width="504" height="261"}

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.

Oldalak