1- use  super :: gpio:: { DisplayPins ,  BTN_A ,  BTN_B ,  INT_SCL ,  INT_SDA ,  SCL ,  SDA } ; 
1+ use  super :: gpio:: { DisplayPins ,  BTN_A ,  BTN_B ,  INT_SCL ,  INT_SDA ,  SCL ,  SDA ,   UART_RX ,   UART_TX } ; 
22use  crate :: { 
33    hal:: { 
44        gpio:: { p0,  p1,  Disconnected ,  Level } , 
5-         twim,  twis, 
5+         twim,  twis,  uarte , 
66    } , 
77    pac, 
88} ; 
@@ -28,6 +28,9 @@ pub struct Board {
2828    /// I2C external bus pins 
2929pub  i2c_external :  I2CExternalPins , 
3030
31+     /// UART to debugger pins 
32+ pub  uart :  UartPins , 
33+ 
3134    /// Core peripheral: Cache and branch predictor maintenance operations 
3235pub  CBP :  pac:: CBP , 
3336
@@ -114,6 +117,12 @@ pub struct Board {
114117
115118    /// nRF52 peripheral: TWIS0 
116119pub  TWIS0 :  pac:: TWIS0 , 
120+ 
121+     /// nRF52 peripheral: UARTE0 
122+ pub  UARTE0 :  pac:: UARTE0 , 
123+ 
124+     /// nRF52 peripheral: UARTE1 
125+ pub  UARTE1 :  pac:: UARTE1 , 
117126} 
118127
119128impl  Board  { 
@@ -138,7 +147,6 @@ impl Board {
138147                p0_03 :  p0parts. p0_03 , 
139148                p0_04 :  p0parts. p0_04 , 
140149                p0_05 :  p0parts. p0_05 , 
141-                 p0_06 :  p0parts. p0_06 , 
142150                p0_07 :  p0parts. p0_07 , 
143151                p0_09 :  p0parts. p0_09 , 
144152                p0_10 :  p0parts. p0_10 , 
@@ -156,7 +164,6 @@ impl Board {
156164                p1_04 :  p1parts. p1_04 , 
157165                p1_06 :  p1parts. p1_06 , 
158166                p1_07 :  p1parts. p1_07 , 
159-                 p1_08 :  p1parts. p1_08 , 
160167                p1_09 :  p1parts. p1_09 , 
161168            } , 
162169            display_pins :  DisplayPins  { 
@@ -184,6 +191,10 @@ impl Board {
184191                scl :  p0parts. p0_26 . into_floating_input ( ) , 
185192                sda :  p1parts. p1_00 . into_floating_input ( ) , 
186193            } , 
194+             uart :  UartPins  { 
195+                 tx :  p0parts. p0_06 . into_push_pull_output ( Level :: High ) , 
196+                 rx :  p1parts. p1_08 . into_floating_input ( ) , 
197+             } , 
187198
188199            // Core peripherals 
189200            CBP :  cp. CBP , 
@@ -217,6 +228,8 @@ impl Board {
217228            TIMER4 :  p. TIMER4 , 
218229            TWIM0 :  p. TWIM0 , 
219230            TWIS0 :  p. TWIS0 , 
231+             UARTE0 :  p. UARTE0 , 
232+             UARTE1 :  p. UARTE1 , 
220233        } 
221234    } 
222235} 
@@ -230,7 +243,7 @@ pub struct Pins {
230243    pub  p0_03 :  p0:: P0_03 < Disconnected > , 
231244    pub  p0_04 :  p0:: P0_04 < Disconnected > , 
232245    pub  p0_05 :  p0:: P0_05 < Disconnected > , 
233-     pub  p0_06 :  p0:: P0_06 < Disconnected > , 
246+     //  pub p0_06: p0::P0_06<Disconnected>, // UART RX 
234247    pub  p0_07 :  p0:: P0_07 < Disconnected > , 
235248    // pub p0_08: p0::P0_08<Disconnected>, // INT_SCL 
236249    pub  p0_09 :  p0:: P0_09 < Disconnected > , 
@@ -264,7 +277,7 @@ pub struct Pins {
264277    // pub p1_05: p1::P1_05<Disconnected>, // LEDs 
265278    pub  p1_06 :  p1:: P1_06 < Disconnected > , 
266279    pub  p1_07 :  p1:: P1_07 < Disconnected > , 
267-     pub  p1_08 :  p1:: P1_08 < Disconnected > , 
280+     //  pub p1_08: p1::P1_08<Disconnected>, // UART TX 
268281    pub  p1_09 :  p1:: P1_09 < Disconnected > , 
269282} 
270283
@@ -323,3 +336,20 @@ impl Into<twis::Pins> for I2CExternalPins {
323336        } 
324337    } 
325338} 
339+ 
340+ /// UART to debugger pins 
341+ pub  struct  UartPins  { 
342+     tx :  UART_TX , 
343+     rx :  UART_RX , 
344+ } 
345+ 
346+ impl  Into < uarte:: Pins >  for  UartPins  { 
347+     fn  into ( self )  -> uarte:: Pins  { 
348+         uarte:: Pins  { 
349+             txd :  self . tx . degrade ( ) , 
350+             rxd :  self . rx . degrade ( ) , 
351+             cts :  None , 
352+             rts :  None , 
353+         } 
354+     } 
355+ } 
0 commit comments