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

Fixing UART (sercom0)

parent 4ebee7db
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment