@@ -98,165 +98,6 @@ pub enum Event {
98
98
pub trait TxPin < USART > { }
99
99
pub trait RxPin < USART > { }
100
100
101
- macro_rules! usart_pins {
102
- ( $( $USART: ident => {
103
- tx => [ $( $tx: ty) ,+ $( , ) * ] ,
104
- rx => [ $( $rx: ty) ,+ $( , ) * ] ,
105
- } ) +) => {
106
- $(
107
- $(
108
- impl TxPin <crate :: stm32:: $USART> for $tx { }
109
- ) +
110
- $(
111
- impl RxPin <crate :: stm32:: $USART> for $rx { }
112
- ) +
113
- ) +
114
- }
115
- }
116
-
117
- #[ cfg( any(
118
- feature = "stm32f030" ,
119
- feature = "stm32f031" ,
120
- feature = "stm32f038" ,
121
- feature = "stm32f042" ,
122
- feature = "stm32f048" ,
123
- feature = "stm32f051" ,
124
- feature = "stm32f058" ,
125
- feature = "stm32f070" ,
126
- feature = "stm32f071" ,
127
- feature = "stm32f072" ,
128
- feature = "stm32f078" ,
129
- feature = "stm32f091" ,
130
- feature = "stm32f098" ,
131
- ) ) ]
132
- usart_pins ! {
133
- USART1 => {
134
- tx => [ gpioa:: PA9 <Alternate <AF1 >>, gpiob:: PB6 <Alternate <AF0 >>] ,
135
- rx => [ gpioa:: PA10 <Alternate <AF1 >>, gpiob:: PB7 <Alternate <AF0 >>] ,
136
- }
137
- }
138
- #[ cfg( any(
139
- feature = "stm32f030x4" ,
140
- feature = "stm32f030x6" ,
141
- feature = "stm32f031" ,
142
- feature = "stm32f038" ,
143
- ) ) ]
144
- usart_pins ! {
145
- USART1 => {
146
- tx => [ gpioa:: PA2 <Alternate <AF1 >>, gpioa:: PA14 <Alternate <AF1 >>] ,
147
- rx => [ gpioa:: PA3 <Alternate <AF1 >>, gpioa:: PA15 <Alternate <AF1 >>] ,
148
- }
149
- }
150
-
151
- #[ cfg( any(
152
- feature = "stm32f030x8" ,
153
- feature = "stm32f030xc" ,
154
- feature = "stm32f042" ,
155
- feature = "stm32f048" ,
156
- feature = "stm32f051" ,
157
- feature = "stm32f058" ,
158
- feature = "stm32f070" ,
159
- feature = "stm32f071" ,
160
- feature = "stm32f072" ,
161
- feature = "stm32f078" ,
162
- feature = "stm32f091" ,
163
- feature = "stm32f098" ,
164
- ) ) ]
165
- usart_pins ! {
166
- USART2 => {
167
- tx => [ gpioa:: PA2 <Alternate <AF1 >>, gpioa:: PA14 <Alternate <AF1 >>] ,
168
- rx => [ gpioa:: PA3 <Alternate <AF1 >>, gpioa:: PA15 <Alternate <AF1 >>] ,
169
- }
170
- }
171
- #[ cfg( any(
172
- feature = "stm32f071" ,
173
- feature = "stm32f072" ,
174
- feature = "stm32f078" ,
175
- feature = "stm32f091" ,
176
- feature = "stm32f098" ,
177
- ) ) ]
178
- usart_pins ! {
179
- USART2 => {
180
- tx => [ gpiod:: PD5 <Alternate <AF0 >>] ,
181
- rx => [ gpiod:: PD6 <Alternate <AF0 >>] ,
182
- }
183
- }
184
-
185
- #[ cfg( any(
186
- feature = "stm32f030xc" ,
187
- feature = "stm32f070xb" ,
188
- feature = "stm32f071" ,
189
- feature = "stm32f072" ,
190
- feature = "stm32f078" ,
191
- feature = "stm32f091" ,
192
- feature = "stm32f098" ,
193
- ) ) ]
194
- usart_pins ! {
195
- USART3 => {
196
- // According to the datasheet PB10 is both tx and rx, but in stm32cubemx it's only tx
197
- tx => [ gpiob:: PB10 <Alternate <AF4 >>, gpioc:: PC4 <Alternate <AF1 >>, gpioc:: PC10 <Alternate <AF1 >>] ,
198
- rx => [ gpiob:: PB11 <Alternate <AF4 >>, gpioc:: PC5 <Alternate <AF1 >>, gpioc:: PC11 <Alternate <AF1 >>] ,
199
- }
200
- USART4 => {
201
- tx => [ gpioa:: PA0 <Alternate <AF4 >>, gpioc:: PC10 <Alternate <AF0 >>] ,
202
- rx => [ gpioa:: PA1 <Alternate <AF4 >>, gpioc:: PC11 <Alternate <AF0 >>] ,
203
- }
204
- }
205
- #[ cfg( any(
206
- feature = "stm32f071" ,
207
- feature = "stm32f072" ,
208
- feature = "stm32f078" ,
209
- feature = "stm32f091" ,
210
- feature = "stm32f098" ,
211
- ) ) ]
212
- usart_pins ! {
213
- USART3 => {
214
- tx => [ gpiod:: PD8 <Alternate <AF0 >>] ,
215
- rx => [ gpiod:: PD9 <Alternate <AF0 >>] ,
216
- }
217
- }
218
- // TODO: The ST SVD files are missing the entire PE enable register.
219
- // Re-enable as soon as this gets fixed.
220
- // #[cfg(any(feature = "stm32f091", feature = "stm32f098"))]
221
- // usart_pins! {
222
- // USART4 => {
223
- // tx => [gpioe::PE8<Alternate<AF1>>],
224
- // rx => [gpioe::PE9<Alternate<AF1>>],
225
- // }
226
- // }
227
-
228
- #[ cfg( any( feature = "stm32f030xc" , feature = "stm32f091" , feature = "stm32f098" ) ) ]
229
- usart_pins ! {
230
- USART5 => {
231
- tx => [ gpioc:: PC12 <Alternate <AF2 >>] ,
232
- rx => [ gpiod:: PD2 <Alternate <AF2 >>] ,
233
- }
234
- USART6 => {
235
- tx => [ gpioa:: PA4 <Alternate <AF5 >>, gpioc:: PC0 <Alternate <AF2 >>] ,
236
- rx => [ gpioa:: PA5 <Alternate <AF5 >>, gpioc:: PC1 <Alternate <AF2 >>] ,
237
- }
238
- }
239
- #[ cfg( any( feature = "stm32f030xc" , feature = "stm32f091" ) ) ]
240
- usart_pins ! {
241
- USART5 => {
242
- tx => [ gpiob:: PB3 <Alternate <AF4 >>] ,
243
- rx => [ gpiob:: PB4 <Alternate <AF4 >>] ,
244
- }
245
- }
246
- // TODO: The ST SVD files are missing the entire PE enable register.
247
- // Re-enable as soon as this gets fixed.
248
- #[ cfg( any( feature = "stm32f091" , feature = "stm32f098" ) ) ]
249
- usart_pins ! {
250
- // USART5 => {
251
- // tx => [gpioe::PE10<Alternate<AF1>>],
252
- // rx => [gpioe::PE11<Alternate<AF1>>],
253
- // }
254
- USART6 => {
255
- tx => [ gpiof:: PF9 <Alternate <AF1 >>] ,
256
- rx => [ gpiof:: PF10 <Alternate <AF1 >>] ,
257
- }
258
- }
259
-
260
101
/// Serial abstraction
261
102
pub struct Serial < USART , TXPIN , RXPIN > {
262
103
usart : USART ,
0 commit comments