|  | 
|  | 1 | +/* | 
|  | 2 | + ******************************************************************************* | 
|  | 3 | + * Copyright (c) 2016, STMicroelectronics | 
|  | 4 | + * All rights reserved. | 
|  | 5 | + * | 
|  | 6 | + * Redistribution and use in source and binary forms, with or without | 
|  | 7 | + * modification, are permitted provided that the following conditions are met: | 
|  | 8 | + * | 
|  | 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 | + ******************************************************************************* | 
|  | 29 | + */ | 
|  | 30 | +#include "Arduino.h" | 
|  | 31 | +#include "PeripheralPins.h" | 
|  | 32 | + | 
|  | 33 | +// ===== | 
|  | 34 | +// Note: Commented lines are alternative possibilities which are not used per default. | 
|  | 35 | +//       If you change them, you will have to know what you do | 
|  | 36 | +// ===== | 
|  | 37 | + | 
|  | 38 | + | 
|  | 39 | +//*** ADC *** | 
|  | 40 | + | 
|  | 41 | +#ifdef HAL_ADC_MODULE_ENABLED | 
|  | 42 | +const PinMap PinMap_ADC[] = { | 
|  | 43 | +    {PA0,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 | 
|  | 44 | +    {PA1,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 | 
|  | 45 | +//  {PA2,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 - STLink Tx | 
|  | 46 | +//  {PA3,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 - STLink RX | 
|  | 47 | +    {PA4,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 | 
|  | 48 | +//  {PA5,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 - LED1 | 
|  | 49 | +    {PA6,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 | 
|  | 50 | +    {PA7,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 | 
|  | 51 | +    {PB0,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 | 
|  | 52 | +    {PB1,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 | 
|  | 53 | +    {PC0,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 | 
|  | 54 | +    {PC1,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11 | 
|  | 55 | +    {PC2,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 | 
|  | 56 | +    {PC3,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 | 
|  | 57 | +    {PC4,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 | 
|  | 58 | +    {PC5,   ADC1,  STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 | 
|  | 59 | +    {NC,    NP,    0} | 
|  | 60 | +}; | 
|  | 61 | +#endif | 
|  | 62 | + | 
|  | 63 | +//*** DAC *** | 
|  | 64 | + | 
|  | 65 | +//*** No DAC *** | 
|  | 66 | + | 
|  | 67 | +//*** I2C *** | 
|  | 68 | + | 
|  | 69 | +#ifdef HAL_I2C_MODULE_ENABLED | 
|  | 70 | +const PinMap PinMap_I2C_SDA[] = { | 
|  | 71 | +    {PB3,   I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)}, | 
|  | 72 | +    {PB4,   I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C3)}, | 
|  | 73 | +    {PB7,   I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, | 
|  | 74 | +//  {PB8,   I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C3)}, // Warning: also on SCL | 
|  | 75 | +    {PB9,   I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, | 
|  | 76 | +//  {PB9,   I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)}, | 
|  | 77 | +    {PC9,   I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, | 
|  | 78 | +    {NC,    NP,    0} | 
|  | 79 | +}; | 
|  | 80 | +#endif | 
|  | 81 | + | 
|  | 82 | +#ifdef HAL_I2C_MODULE_ENABLED | 
|  | 83 | +const PinMap PinMap_I2C_SCL[] = { | 
|  | 84 | +    {PA8,   I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, | 
|  | 85 | +    {PB6,   I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, | 
|  | 86 | +    {PB8,   I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, | 
|  | 87 | +    {PB10,  I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, | 
|  | 88 | +    {NC,    NP,    0} | 
|  | 89 | +}; | 
|  | 90 | +#endif | 
|  | 91 | + | 
|  | 92 | +//*** PWM *** | 
|  | 93 | + | 
|  | 94 | +#ifdef HAL_TIM_MODULE_ENABLED | 
|  | 95 | +const PinMap PinMap_PWM[] = { | 
|  | 96 | +//  {PA0,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1 | 
|  | 97 | +    {PA0,   TIM5,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)},  // TIM5_CH1 | 
|  | 98 | +//  {PA1,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)},  // TIM2_CH2 | 
|  | 99 | +    {PA1,   TIM5,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)},  // TIM5_CH2 | 
|  | 100 | +//  {PA2,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)},  // TIM2_CH3 | 
|  | 101 | +    {PA2,   TIM5,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)},  // TIM5_CH3 | 
|  | 102 | +//  {PA2,   TIM9,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)},  // TIM9_CH1 | 
|  | 103 | +//  {PA3,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)},  // TIM2_CH4 | 
|  | 104 | +    {PA3,   TIM5,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)},  // TIM5_CH4 | 
|  | 105 | +//  {PA3,   TIM9,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)},  // TIM9_CH2 | 
|  | 106 | +    {PA5,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1 | 
|  | 107 | +    {PA6,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)},  // TIM3_CH1 | 
|  | 108 | +//  {PA7,   TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)},  // TIM1_CH1N | 
|  | 109 | +    {PA7,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)},  // TIM3_CH2 | 
|  | 110 | +    {PA8,   TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)},  // TIM1_CH1 | 
|  | 111 | +    {PA9,   TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)},  // TIM1_CH2 | 
|  | 112 | +    {PA10,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)},  // TIM1_CH3 | 
|  | 113 | +    {PA11,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)},  // TIM1_CH4 | 
|  | 114 | +    {PA15,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1 | 
|  | 115 | +//  {PB0,   TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)},  // TIM1_CH2N | 
|  | 116 | +    {PB0,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)},  // TIM3_CH3 | 
|  | 117 | +//  {PB1,   TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)},  // TIM1_CH3N | 
|  | 118 | +    {PB1,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)},  // TIM3_CH4 | 
|  | 119 | +    {PB3,   TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)},  // TIM2_CH2 | 
|  | 120 | +    {PB4,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)},  // TIM3_CH1 | 
|  | 121 | +    {PB5,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)},  // TIM3_CH2 | 
|  | 122 | +    {PB6,   TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)},  // TIM4_CH1 | 
|  | 123 | +    {PB7,   TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)},  // TIM4_CH2 | 
|  | 124 | +//  {PB8,   TIM10,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)},  // TIM10_CH1 | 
|  | 125 | +    {PB8,   TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)},  // TIM4_CH3 | 
|  | 126 | +//  {PB9,   TIM11,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)},  // TIM11_CH1 | 
|  | 127 | +    {PB9,   TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)},  // TIM4_CH4 | 
|  | 128 | +    {PB10,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)},  // TIM2_CH3 | 
|  | 129 | +    {PB13,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)},  // TIM1_CH1N | 
|  | 130 | +    {PB14,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)},  // TIM1_CH2N | 
|  | 131 | +    {PB15,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)},  // TIM1_CH3N | 
|  | 132 | +    {PC6,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)},  // TIM3_CH1 | 
|  | 133 | +    {PC7,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)},  // TIM3_CH2 | 
|  | 134 | +    {PC8,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)},  // TIM3_CH3 | 
|  | 135 | +    {PC9,   TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)},  // TIM3_CH4 | 
|  | 136 | +    {NC,    NP,    0} | 
|  | 137 | +}; | 
|  | 138 | +#endif | 
|  | 139 | + | 
|  | 140 | +//*** SERIAL *** | 
|  | 141 | + | 
|  | 142 | +#ifdef HAL_UART_MODULE_ENABLED | 
|  | 143 | +const PinMap PinMap_UART_TX[] = { | 
|  | 144 | +    {PA2,   USART2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, | 
|  | 145 | +    {PA9,   USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 146 | +    {PA11,  USART6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, | 
|  | 147 | +    {PA15,  USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 148 | +    {PB6,   USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 149 | +    {PC6,   USART6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, | 
|  | 150 | +    {NC,    NP,    0} | 
|  | 151 | +}; | 
|  | 152 | +#endif | 
|  | 153 | + | 
|  | 154 | +#ifdef HAL_UART_MODULE_ENABLED | 
|  | 155 | +const PinMap PinMap_UART_RX[] = { | 
|  | 156 | +    {PA3,   USART2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, | 
|  | 157 | +    {PA10,  USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 158 | +    {PA12,  USART6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, | 
|  | 159 | +    {PB3,   USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 160 | +    {PB7,   USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 161 | +    {PC7,   USART6,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, | 
|  | 162 | +    {NC,    NP,    0} | 
|  | 163 | +}; | 
|  | 164 | +#endif | 
|  | 165 | + | 
|  | 166 | +#ifdef HAL_UART_MODULE_ENABLED | 
|  | 167 | +const PinMap PinMap_UART_RTS[] = { | 
|  | 168 | +    {PA1,   USART2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, | 
|  | 169 | +    {PA12,  USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 170 | +    {NC,    NP,    0} | 
|  | 171 | +}; | 
|  | 172 | +#endif | 
|  | 173 | + | 
|  | 174 | +#ifdef HAL_UART_MODULE_ENABLED | 
|  | 175 | +const PinMap PinMap_UART_CTS[] = { | 
|  | 176 | +    {PA0,   USART2,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, | 
|  | 177 | +    {PA11,  USART1,  STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, | 
|  | 178 | +    {NC,    NP,    0} | 
|  | 179 | +}; | 
|  | 180 | +#endif | 
|  | 181 | + | 
|  | 182 | +//*** SPI *** | 
|  | 183 | + | 
|  | 184 | +#ifdef HAL_SPI_MODULE_ENABLED | 
|  | 185 | +const PinMap PinMap_SPI_MOSI[] = { | 
|  | 186 | +    {PA1,   SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI4)}, | 
|  | 187 | +    {PA7,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 188 | +    {PA10,  SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, | 
|  | 189 | +    {PB5,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 190 | +//  {PB5,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 191 | +    {PB8,   SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, | 
|  | 192 | +    {PB15,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 193 | +    {PC3,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 194 | +    {PC12,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 195 | +    {NC,    NP,    0} | 
|  | 196 | +}; | 
|  | 197 | +#endif | 
|  | 198 | + | 
|  | 199 | +#ifdef HAL_SPI_MODULE_ENABLED | 
|  | 200 | +const PinMap PinMap_SPI_MISO[] = { | 
|  | 201 | +    {PA6,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 202 | +    {PA11,  SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI4)}, | 
|  | 203 | +    {PA12,  SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, | 
|  | 204 | +    {PB4,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 205 | +//  {PB4,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 206 | +    {PB14,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 207 | +    {PC2,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 208 | +    {PC11,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 209 | +    {NC,    NP,    0} | 
|  | 210 | +}; | 
|  | 211 | +#endif | 
|  | 212 | + | 
|  | 213 | +#ifdef HAL_SPI_MODULE_ENABLED | 
|  | 214 | +const PinMap PinMap_SPI_SCLK[] = { | 
|  | 215 | +    {PA5,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 216 | +    {PB0,   SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, | 
|  | 217 | +    {PB3,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 218 | +//  {PB3,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 219 | +    {PB10,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 220 | +    {PB12,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_SPI3)}, | 
|  | 221 | +//  {PB13,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 222 | +    {PB13,  SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI4)}, | 
|  | 223 | +    {PC7,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 224 | +    {PC10,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 225 | +    {NC,    NP,    0} | 
|  | 226 | +}; | 
|  | 227 | +#endif | 
|  | 228 | + | 
|  | 229 | +#ifdef HAL_SPI_MODULE_ENABLED | 
|  | 230 | +const PinMap PinMap_SPI_SSEL[] = { | 
|  | 231 | +    {PA4,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 232 | +//  {PA4,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 233 | +    {PA15,  SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, | 
|  | 234 | +//  {PA15,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, | 
|  | 235 | +    {PB1,   SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, | 
|  | 236 | +    {PB9,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, | 
|  | 237 | +//  {PB12,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, // Warning: also on SCLK | 
|  | 238 | +//  {PB12,  SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI4)}, // Warning: also on SCLK | 
|  | 239 | +    {NC,    NP,    0} | 
|  | 240 | +}; | 
|  | 241 | +#endif | 
|  | 242 | + | 
|  | 243 | +//*** CAN *** | 
|  | 244 | + | 
|  | 245 | +//*** No CAN_RD *** | 
|  | 246 | + | 
|  | 247 | +//*** No CAN_TD *** | 
|  | 248 | + | 
|  | 249 | +//*** ETHERNET *** | 
|  | 250 | + | 
|  | 251 | +//*** No Ethernet *** | 
0 commit comments