Skip to content
Snippets Groups Projects
Commit 5ad078fa authored by Jonathan BAUDIN's avatar Jonathan BAUDIN
Browse files

Fixing UART (sercom0)

parent 4ebee7db
Branches
Tags
No related merge requests found
......@@ -2,11 +2,11 @@
#include "WVariant.h"
#include "wiring_digital.h"
Uart::Uart(SERCOM *s, uint8_t pinRX, uint8_t pinTX)
Uart::Uart(SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX)
{
sercom = s;
pinPeripheral(pinRX, g_APinDescription[pinRX].ulPinType);
pinPeripheral(pinTX, g_APinDescription[pinTX].ulPinType);
sercom = _s;
uc_pinRX = _pinRX;
uc_pinTX = _pinTX;
}
void Uart::begin(unsigned long baudrate)
......@@ -16,6 +16,9 @@ void Uart::begin(unsigned long baudrate)
void Uart::begin(unsigned long baudrate, uint8_t config)
{
pinPeripheral(uc_pinRX, g_APinDescription[uc_pinRX].ulPinType);
pinPeripheral(uc_pinTX, g_APinDescription[uc_pinTX].ulPinType);
sercom->initUART(UART_INT_CLOCK, SAMPLE_RATE_x16, baudrate);
sercom->initFrame(extractCharSize(config), LSB_FIRST, extractParity(config), extractNbStopBit(config));
sercom->initPads(UART_TX_PAD_2, SERCOM_RX_PAD_3);
......
......@@ -11,7 +11,7 @@
class Uart : public HardwareSerial
{
public:
Uart(SERCOM *s, uint8_t pinRX, uint8_t pinTX);
Uart(SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX);
void begin(unsigned long baudRate);
void begin(unsigned long baudrate, uint8_t config);
void end();
......@@ -29,6 +29,9 @@ class Uart : public HardwareSerial
private:
SERCOM *sercom;
RingBuffer rxBuffer;
uint8_t uc_pinRX;
uint8_t uc_pinTX;
SercomNumberStopBit extractNbStopBit(uint8_t config);
SercomUartCharSize extractCharSize(uint8_t config);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment