@@ -32,10 +32,16 @@ extern void serialEvent1() __attribute__((weak));
3232extern  void  serialEvent2 () __attribute__((weak));
3333
3434bool  SerialUART::setRX (pin_size_t  pin) {
35-     constexpr  uint32_t  valid[2 ] = { __bitset ({1 , 13 , 17 , 29 }) /*  UART0 */  ,
35+ #ifdef  RP2350B
36+     constexpr  uint64_t  valid[2 ] = { __bitset ({1 , 13 , 17 , 29 , 33 , 45 }) /*  UART0 */  ,
37+                                     __bitset ({5 , 9 , 21 , 25 , 37 , 41 })  /*  UART1 */ 
38+                                   };
39+ #else 
40+     constexpr  uint64_t  valid[2 ] = { __bitset ({1 , 13 , 17 , 29 }) /*  UART0 */  ,
3641                                    __bitset ({5 , 9 , 21 , 25 })  /*  UART1 */ 
3742                                  };
38-     if  ((!_running) && ((1  << pin) & valid[uart_get_index (_uart)])) {
43+ #endif 
44+     if  ((!_running) && ((1LL  << pin) & valid[uart_get_index (_uart)])) {
3945        _rx = pin;
4046        return  true ;
4147    }
@@ -53,10 +59,16 @@ bool SerialUART::setRX(pin_size_t pin) {
5359}
5460
5561bool  SerialUART::setTX (pin_size_t  pin) {
56-     constexpr  uint32_t  valid[2 ] = { __bitset ({0 , 12 , 16 , 28 }) /*  UART0 */  ,
62+ #ifdef  RP2350B
63+     constexpr  uint64_t  valid[2 ] = { __bitset ({0 , 12 , 16 , 28 , 32 , 44 }) /*  UART0 */  ,
64+                                     __bitset ({4 , 8 , 20 , 24 , 36 , 40 })  /*  UART1 */ 
65+                                   };
66+ #else 
67+     constexpr  uint64_t  valid[2 ] = { __bitset ({0 , 12 , 16 , 28 }) /*  UART0 */  ,
5768                                    __bitset ({4 , 8 , 20 , 24 })  /*  UART1 */ 
5869                                  };
59-     if  ((!_running) && ((1  << pin) & valid[uart_get_index (_uart)])) {
70+ #endif 
71+     if  ((!_running) && ((1LL  << pin) & valid[uart_get_index (_uart)])) {
6072        _tx = pin;
6173        return  true ;
6274    }
@@ -74,10 +86,16 @@ bool SerialUART::setTX(pin_size_t pin) {
7486}
7587
7688bool  SerialUART::setRTS (pin_size_t  pin) {
77-     constexpr  uint32_t  valid[2 ] = { __bitset ({3 , 15 , 19 }) /*  UART0 */  ,
89+ #ifdef  RP2350B
90+     constexpr  uint64_t  valid[2 ] = { __bitset ({3 , 15 , 19 , 31 , 35 , 47 }) /*  UART0 */  ,
91+                                     __bitset ({7 , 11 , 23 , 27 , 39 , 43 })  /*  UART1 */ 
92+                                   };
93+ #else 
94+     constexpr  uint64_t  valid[2 ] = { __bitset ({3 , 15 , 19 }) /*  UART0 */  ,
7895                                    __bitset ({7 , 11 , 23 , 27 })  /*  UART1 */ 
7996                                  };
80-     if  ((!_running) && ((pin == UART_PIN_NOT_DEFINED) || ((1  << pin) & valid[uart_get_index (_uart)]))) {
97+ #endif 
98+     if  ((!_running) && ((pin == UART_PIN_NOT_DEFINED) || ((1LL  << pin) & valid[uart_get_index (_uart)]))) {
8199        _rts = pin;
82100        return  true ;
83101    }
@@ -95,10 +113,16 @@ bool SerialUART::setRTS(pin_size_t pin) {
95113}
96114
97115bool  SerialUART::setCTS (pin_size_t  pin) {
98-     constexpr  uint32_t  valid[2 ] = { __bitset ({2 , 14 , 18 }) /*  UART0 */  ,
116+ #ifdef  RP2350B
117+     constexpr  uint64_t  valid[2 ] = { __bitset ({2 , 14 , 18 , 30 , 34 , 46 }) /*  UART0 */  ,
118+                                     __bitset ({6 , 10 , 22 , 26 , 38 , 42 })  /*  UART1 */ 
119+                                   };
120+ #else 
121+     constexpr  uint64_t  valid[2 ] = { __bitset ({2 , 14 , 18 }) /*  UART0 */  ,
99122                                    __bitset ({6 , 10 , 22 , 26 })  /*  UART1 */ 
100123                                  };
101-     if  ((!_running) && ((pin == UART_PIN_NOT_DEFINED) || ((1  << pin) & valid[uart_get_index (_uart)]))) {
124+ #endif 
125+     if  ((!_running) && ((pin == UART_PIN_NOT_DEFINED) || ((1LL  << pin) & valid[uart_get_index (_uart)]))) {
102126        _cts = pin;
103127        return  true ;
104128    }
0 commit comments