57 lines
890 B
C++
57 lines
890 B
C++
#include "Uart.h"
|
|
|
|
// Constructor
|
|
Uart::Uart(PinName tx, PinName rx, int baud = 9600)
|
|
: serial(tx, rx, baud)
|
|
{
|
|
received = false;
|
|
received_character = ' ';
|
|
// Set desired properties
|
|
serial.baud(baud);
|
|
serial.format(
|
|
/* bits */ 8,
|
|
/* parity */ SerialBase::None,
|
|
/* stop bit */ 1
|
|
);
|
|
serial.attach(callback(this, &Uart::rxInterrupt), SerialBase::RxIrq);
|
|
};
|
|
|
|
|
|
void Uart::rxInterrupt()
|
|
{
|
|
char c;
|
|
serial.read(&c, 1);
|
|
received_character = c;
|
|
received = true;
|
|
};
|
|
|
|
// Destructor
|
|
Uart::~Uart()
|
|
{
|
|
};
|
|
|
|
bool Uart::isCharReceived()
|
|
{
|
|
if(received)
|
|
{
|
|
received = false;
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
};
|
|
|
|
char Uart::getReceivedChar()
|
|
{
|
|
return received_character;
|
|
};
|
|
|
|
void Uart::writeChar(char c)
|
|
{
|
|
serial.write(&c, 1);
|
|
};
|
|
|
|
UnbufferedSerial* Uart::getSerial()
|
|
{
|
|
return &serial;
|
|
}; |