Tato třída slouží k využití sériového rozhraní a komunikaci po sériové lince. Ke komunikaci jsou zapotřebí dva piny - RX(recieve data) a TX(transfer data).
#include "byzance.h"
Serial pc(X09, X11);
void init(){
pc.baud(9600); //Nastavení baudové rychlosti
pc.printf("Serial connection\n"); //Send to serial line
}
void loop(){
pc.printf("Hello world\n");
}
Komunikace pomoc SPI (Serial Peripheral Interface), rozlišuje komunikační prvky na Mastra a jeho podřízené jednotky - Slave. Každý Master může obsluhovat několik Slavů tím způsobem, že vyzve jednotku ke komunikaci přepnutím příslušného pinu SS (Slave select) do logické nuly a vyslání dotazu (Bytu). Jednotka Slave poté na tento dotaz odpovídá zpátky. Po ukončení komunikace Master přepne pin SS zpět do logické jedničky. Jednotka Slave nikdy neodesílá žádná data bez výzvy a Master vždy může komunikovat pouze s jedním Slavem najednou. Pro každý Slave má Master jeden příslušný digitální pin SS. Komunikační protokol je blíže vysvětlený například na Wiki.
Příklad programu, který reaguje na přijatá data od SPI Mastera přičtením jedničky k přijatému Bytu
#include "byzance.h"
Serial pc(SERIAL_TX, SERIAL_RX);
SPISlave device(X14, X12, X10, X08); // mosi, miso, scl, ss (or CS - Chip select)
void init(){
pc.baud(115200);
}
void loop(){
// React if master send you a message
if(device.receive()) {
uint8_t v = device.read(); // Read byte from master
pc.printf("Byte 0x%X recieved\n",v); // Print it
device.reply(v+1); // Add one to received message and reply with it
}
}