2424#define NO_CTS_PIN 255
2525#define RTS_RX_THRESHOLD 10
2626
27- Uart::Uart (SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX, SercomRXPad _padRX, SercomUartTXPad _padTX)
27+ Uart::Uart (SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX, SercomRXPad _padRX, SercomUartTXPad _padTX) :
28+ Uart(_s, _pinRX, _pinTX, _padRX, _padTX, NO_RTS_PIN, NO_CTS_PIN)
29+ {
30+ }
31+
32+ Uart::Uart (SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX, SercomRXPad _padRX, SercomUartTXPad _padTX, uint8_t _pinRTS, uint8_t _pinCTS)
2833{
2934 sercom = _s;
3035 uc_pinRX = _pinRX;
3136 uc_pinTX = _pinTX;
3237 uc_padRX = _padRX ;
3338 uc_padTX = _padTX;
34- uc_pinRTS = NO_RTS_PIN ;
35- uc_pinCTS = NO_CTS_PIN ;
39+ uc_pinRTS = _pinRTS ;
40+ uc_pinCTS = _pinCTS ;
3641}
3742
3843void Uart::begin (unsigned long baudrate)
@@ -45,11 +50,8 @@ void Uart::begin(unsigned long baudrate, uint16_t config)
4550 pinPeripheral (uc_pinRX, g_APinDescription[uc_pinRX].ulPinType );
4651 pinPeripheral (uc_pinTX, g_APinDescription[uc_pinTX].ulPinType );
4752
48- if (uc_pinRTS != NO_RTS_PIN) {
53+ if (uc_padTX == UART_TX_RTS_CTS_PAD_0_2_3 && uc_pinRTS != NO_RTS_PIN && uc_pinCTS != NO_CTS_PIN ) {
4954 pinPeripheral (uc_pinRTS, g_APinDescription[uc_pinRTS].ulPinType );
50- }
51-
52- if (uc_pinCTS != NO_CTS_PIN) {
5355 pinPeripheral (uc_pinCTS, g_APinDescription[uc_pinCTS].ulPinType );
5456 }
5557
@@ -62,11 +64,6 @@ void Uart::begin(unsigned long baudrate, uint16_t config)
6264
6365void Uart::end ()
6466{
65- if (uc_pinRTS != NO_RTS_PIN) {
66- digitalWrite (uc_pinRTS, LOW);
67- pinMode (uc_pinRTS, INPUT);
68- }
69-
7067 sercom->resetUART ();
7168 rxBuffer.clear ();
7269 txBuffer.clear ();
@@ -205,25 +202,3 @@ SercomParityMode Uart::extractParity(uint16_t config)
205202 return SERCOM_ODD_PARITY;
206203 }
207204}
208-
209- int Uart::attachRts (uint8_t pin)
210- {
211- if (uc_padTX == UART_TX_RTS_CTS_PAD_0_2_3) {
212- uc_pinRTS = pin;
213-
214- return 1 ;
215- }
216-
217- return 0 ;
218- }
219-
220- int Uart::attachCts (uint8_t pin)
221- {
222- if (uc_padTX == UART_TX_RTS_CTS_PAD_0_2_3) {
223- uc_pinCTS = pin;
224-
225- return 1 ;
226- }
227-
228- return 0 ;
229- }
0 commit comments