1
1
/*
2
2
*******************************************************************************
3
- * Copyright (c) 2019 , STMicroelectronics
3
+ * Copyright (c) 2020 , STMicroelectronics
4
4
* All rights reserved.
5
5
*
6
- * Redistribution and use in source and binary forms, with or without
7
- * modification, are permitted provided that the following conditions are met:
6
+ * This software component is licensed by ST under BSD 3-Clause license,
7
+ * the "License"; You may not use this file except in compliance with the
8
+ * License. You may obtain a copy of the License at:
9
+ * opensource.org/licenses/BSD-3-Clause
8
10
*
9
- * 1. Redistributions of source code must retain the above copyright notice,
10
- * this list of conditions and the following disclaimer.
11
- * 2. Redistributions in binary form must reproduce the above copyright notice,
12
- * this list of conditions and the following disclaimer in the documentation
13
- * and/or other materials provided with the distribution.
14
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
15
- * may be used to endorse or promote products derived from this software
16
- * without specific prior written permission.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
11
*******************************************************************************
29
12
* Automatically generated from STM32F411R(C-E)Tx.xml
13
+ * Manually updated to support STM32F401R(D-E)Tx.xml
30
14
*/
31
15
#include "Arduino.h"
32
16
#include "PeripheralPins.h"
@@ -70,9 +54,13 @@ WEAK const PinMap PinMap_I2C_SDA[] = {
70
54
{PB_3 , I2C2 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , GPIO_AF9_I2C2 )},
71
55
{PB_4 , I2C3 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , GPIO_AF9_I2C3 )},
72
56
{PB_7 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , GPIO_AF4_I2C1 )},
57
+ #ifdef ARDUINO_NUCLEO_F411RE
73
58
// {PB_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C3)}, // Warning: also on SCL
59
+ #endif
74
60
{PB_9 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , GPIO_AF4_I2C1 )},
61
+ #ifdef ARDUINO_NUCLEO_F411RE
75
62
// {PB_9, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)},
63
+ #endif
76
64
{PC_9 , I2C3 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , GPIO_AF4_I2C3 )},
77
65
{NC , NP , 0 }
78
66
};
@@ -143,7 +131,9 @@ WEAK const PinMap PinMap_UART_TX[] = {
143
131
{PA_2 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART2 )},
144
132
{PA_9 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
145
133
{PA_11 , USART6 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF8_USART6 )},
134
+ #ifdef ARDUINO_NUCLEO_F411RE
146
135
{PA_15 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
136
+ #endif
147
137
{PB_6 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
148
138
{PC_6 , USART6 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF8_USART6 )},
149
139
{NC , NP , 0 }
@@ -155,7 +145,9 @@ WEAK const PinMap PinMap_UART_RX[] = {
155
145
{PA_3 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART2 )},
156
146
{PA_10 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
157
147
{PA_12 , USART6 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF8_USART6 )},
148
+ #ifdef ARDUINO_NUCLEO_F411RE
158
149
{PB_3 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
150
+ #endif
159
151
{PB_7 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_USART1 )},
160
152
{PC_7 , USART6 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF8_USART6 )},
161
153
{NC , NP , 0 }
@@ -182,12 +174,18 @@ WEAK const PinMap PinMap_UART_CTS[] = {
182
174
183
175
#ifdef HAL_SPI_MODULE_ENABLED
184
176
WEAK const PinMap PinMap_SPI_MOSI [] = {
177
+ #ifdef ARDUINO_NUCLEO_F411RE
185
178
{PA_1 , SPI4 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI4 )},
179
+ #endif
186
180
{PA_7 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
181
+ #ifdef ARDUINO_NUCLEO_F411RE
187
182
{PA_10 , SPI5 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI5 )},
183
+ #endif
188
184
{PB_5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
189
185
// {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
186
+ #ifdef ARDUINO_NUCLEO_F411RE
190
187
{PB_8 , SPI5 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI5 )},
188
+ #endif
191
189
{PB_15 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
192
190
{PC_3 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
193
191
{PC_12 , SPI3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI3 )},
@@ -198,8 +196,10 @@ WEAK const PinMap PinMap_SPI_MOSI[] = {
198
196
#ifdef HAL_SPI_MODULE_ENABLED
199
197
WEAK const PinMap PinMap_SPI_MISO [] = {
200
198
{PA_6 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
199
+ #ifdef ARDUINO_NUCLEO_F411RE
201
200
{PA_11 , SPI4 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI4 )},
202
201
{PA_12 , SPI5 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI5 )},
202
+ #endif
203
203
{PB_4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
204
204
// {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
205
205
{PB_14 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
@@ -212,14 +212,20 @@ WEAK const PinMap PinMap_SPI_MISO[] = {
212
212
#ifdef HAL_SPI_MODULE_ENABLED
213
213
WEAK const PinMap PinMap_SPI_SCLK [] = {
214
214
{PA_5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
215
+ #ifdef ARDUINO_NUCLEO_F411RE
215
216
{PB_0 , SPI5 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI5 )},
217
+ #endif
216
218
{PB_3 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
217
219
// {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
218
220
{PB_10 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
221
+ #ifdef ARDUINO_NUCLEO_F411RE
219
222
{PB_12 , SPI3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF7_SPI3 )},
220
223
// {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
221
224
{PB_13 , SPI4 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI4 )},
222
225
{PC_7 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
226
+ #else /* ARDUINO_NUCLEO_F401RE */
227
+ {PB_13 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
228
+ #endif
223
229
{PC_10 , SPI3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI3 )},
224
230
{NC , NP , 0 }
225
231
};
@@ -229,12 +235,18 @@ WEAK const PinMap PinMap_SPI_SCLK[] = {
229
235
WEAK const PinMap PinMap_SPI_SSEL [] = {
230
236
{PA_4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
231
237
// {PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
232
- {PA_15 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI1 )},
233
- // {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
238
+ // {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
239
+ {PA_15 , SPI3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI3 )},
240
+ #ifdef ARDUINO_NUCLEO_F411RE
234
241
{PB_1 , SPI5 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF6_SPI5 )},
242
+ #endif
235
243
{PB_9 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
244
+ #ifdef ARDUINO_NUCLEO_F411RE
236
245
// {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, // Warning: also on SCLK
237
246
// {PB_12, SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI4)}, // Warning: also on SCLK
247
+ #else /* ARDUINO_NUCLEO_F401RE */
248
+ {PB_12 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF5_SPI2 )},
249
+ #endif
238
250
{NC , NP , 0 }
239
251
};
240
252
#endif
@@ -250,7 +262,11 @@ WEAK const PinMap PinMap_SPI_SSEL[] = {
250
262
#ifdef HAL_PCD_MODULE_ENABLED
251
263
WEAK const PinMap PinMap_USB_OTG_FS [] = {
252
264
{PA_8 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF10_OTG_FS )}, // USB_OTG_FS_SOF
265
+ #ifdef ARDUINO_NUCLEO_F411RE
253
266
{PA_9 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , GPIO_AF10_OTG_FS )}, // USB_OTG_FS_VBUS
267
+ #else /* ARDUINO_NUCLEO_F401RE */
268
+ {PA_9 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_INPUT , GPIO_NOPULL , GPIO_AF_NONE )}, // USB_OTG_FS_VBUS
269
+ #endif
254
270
{PA_10 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_PULLUP , GPIO_AF10_OTG_FS )}, // USB_OTG_FS_ID
255
271
{PA_11 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF10_OTG_FS )}, // USB_OTG_FS_DM
256
272
{PA_12 , USB_OTG_FS , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF10_OTG_FS )}, // USB_OTG_FS_DP
@@ -259,3 +275,34 @@ WEAK const PinMap PinMap_USB_OTG_FS[] = {
259
275
#endif
260
276
261
277
//*** No USB_OTG_HS ***
278
+
279
+ //*** SD ***
280
+
281
+ #ifdef HAL_SD_MODULE_ENABLED
282
+ WEAK const PinMap PinMap_SD [] = {
283
+ #ifdef ARDUINO_NUCLEO_F411RE
284
+ // {PA_6, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF12_SDIO)}, // SDIO_CMD
285
+ // {PA_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D1
286
+ // {PA_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D2
287
+ // {PB_4, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D0
288
+ // {PB_5, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D3
289
+ // {PB_7, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D0
290
+ #endif
291
+ // {PB_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D4
292
+ // {PB_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D5
293
+ #ifdef ARDUINO_NUCLEO_F411RE
294
+ // {PB_10, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D7
295
+ // {PB_14, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D6
296
+ // {PB_15, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF12_SDIO)}, // SDIO_CK
297
+ #endif
298
+ // {PC_6, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D6
299
+ // {PC_7, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D7
300
+ {PC_8 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF12_SDIO )}, // SDIO_D0
301
+ {PC_9 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF12_SDIO )}, // SDIO_D1
302
+ {PC_10 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF12_SDIO )}, // SDIO_D2
303
+ {PC_11 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , GPIO_AF12_SDIO )}, // SDIO_D3
304
+ {PC_12 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_NOPULL , GPIO_AF12_SDIO )}, // SDIO_CK
305
+ {PD_2 , SDIO , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_NOPULL , GPIO_AF12_SDIO )}, // SDIO_CMD
306
+ {NC , NP , 0 }
307
+ };
308
+ #endif
0 commit comments