BLACKPILL custom target.

BLACKPILL custom target

Board pinout

When equipped with STM32F401CCU6:

Zoom in
https://os.mbed.com/media/uploads/hudakz/blackpill_f401cc.png

When equipped with STM32F411CEU6:

Zoom in
https://os.mbed.com/media/uploads/hudakz/blackpill-pinout.png

Advantages of the BLACKPILL custom target over the NUCLEO_F401RE/ NUCLEO_F411RE
  • The onboard external 25 MHz crystal is used as system clock source rather than the less precise internal 16 MHz RC oscillator.
  • The onboard LED works as LED1 in programs.
  • The onboard KEY on STM32F411CEU6 boards works as USER_BUTTON pin in programs.
  • You can use the USB peripheral in your programs and connect the board to the PC over the onboard USB connector. An example of using the USB peripheral as USBSerial (12 Mbit/s) is available here.
Building programs for the BLACKPILL custom target in Mbed Studio
  • Connect an STM32 ST-Link programmer to your BLACKPILL board and PC (see below for more details).
  • Create a new program in the Mbed Studio IDE.
  • Right-click on the program's root folder and in the popup window select Add library...
  • Open the drop-list and select default as Branch or tag and click on the Finish button.
  • Open the BLACKPILL_Custom_Target folder and according to you board drag&drop the TARGET_BLACKPILL_F401CC or the TARGET_BLACKPILL_F411CE folder and the custom_targets.json file one by one to the root folder of your program.
  • Delete the BLACKPILL_Custom_Target folder from your project. (Right-click and select delete).
  • Open the Target drop-list and click on the button with a "chip" icon on it (Manage custom targets) .
  • Open the USB device drop-list and select your STM32 ST-Link programmer.
  • Open the Build target drop-list and according to your board select BLACKPILL_F401CC or BLACKPILL_F411CE.
  • Click on the Save All button.
  • Build your program (click on hammer button).

For more info visit

Import programBlackpill_Hello

Using low cost Blackpill (STM32F411CEU6) boards with mbed.

Committer:
hudakz
Date:
Wed Mar 30 09:55:17 2022 +0000
Revision:
9:2f993be74e92
Parent:
7:3a74f7149fa4
Fixed the "flash_data.h" file for the TARGET_BLACKPILL_F411CE.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 7:3a74f7149fa4 1 /* mbed Microcontroller Library
hudakz 7:3a74f7149fa4 2 *******************************************************************************
hudakz 7:3a74f7149fa4 3 * Copyright (c) 2018, STMicroelectronics
hudakz 7:3a74f7149fa4 4 * All rights reserved.
hudakz 7:3a74f7149fa4 5 *
hudakz 7:3a74f7149fa4 6 * Redistribution and use in source and binary forms, with or without
hudakz 7:3a74f7149fa4 7 * modification, are permitted provided that the following conditions are met:
hudakz 7:3a74f7149fa4 8 *
hudakz 7:3a74f7149fa4 9 * 1. Redistributions of source code must retain the above copyright notice,
hudakz 7:3a74f7149fa4 10 * this list of conditions and the following disclaimer.
hudakz 7:3a74f7149fa4 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
hudakz 7:3a74f7149fa4 12 * this list of conditions and the following disclaimer in the documentation
hudakz 7:3a74f7149fa4 13 * and/or other materials provided with the distribution.
hudakz 7:3a74f7149fa4 14 * 3. Neither the name of STMicroelectronics nor the names of its contributors
hudakz 7:3a74f7149fa4 15 * may be used to endorse or promote products derived from this software
hudakz 7:3a74f7149fa4 16 * without specific prior written permission.
hudakz 7:3a74f7149fa4 17 *
hudakz 7:3a74f7149fa4 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
hudakz 7:3a74f7149fa4 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
hudakz 7:3a74f7149fa4 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
hudakz 7:3a74f7149fa4 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
hudakz 7:3a74f7149fa4 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
hudakz 7:3a74f7149fa4 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
hudakz 7:3a74f7149fa4 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
hudakz 7:3a74f7149fa4 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
hudakz 7:3a74f7149fa4 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
hudakz 7:3a74f7149fa4 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
hudakz 7:3a74f7149fa4 28 *******************************************************************************
hudakz 7:3a74f7149fa4 29 */
hudakz 7:3a74f7149fa4 30
hudakz 7:3a74f7149fa4 31 //==============================================================================
hudakz 7:3a74f7149fa4 32 // Notes
hudakz 7:3a74f7149fa4 33 //
hudakz 7:3a74f7149fa4 34 // - The pins mentioned Px_y_ALTz are alternative possibilities which use other
hudakz 7:3a74f7149fa4 35 // HW peripheral instances. You can use them the same way as any other "normal"
hudakz 7:3a74f7149fa4 36 // pin (i.e. PwmOut pwm(PA_7_ALT0);). These pins are not displayed on the board
hudakz 7:3a74f7149fa4 37 // pinout image on mbed.org.
hudakz 7:3a74f7149fa4 38 //
hudakz 7:3a74f7149fa4 39 // - The pins which are connected to other components present on the board have
hudakz 7:3a74f7149fa4 40 // the comment "Connected to xxx". The pin function may not work properly in this
hudakz 7:3a74f7149fa4 41 // case. These pins may not be displayed on the board pinout image on mbed.org.
hudakz 7:3a74f7149fa4 42 // Please read the board reference manual and schematic for more information.
hudakz 7:3a74f7149fa4 43 //
hudakz 7:3a74f7149fa4 44 // - Warning: pins connected to the default STDIO_UART_TX and STDIO_UART_RX pins are commented
hudakz 7:3a74f7149fa4 45 // See https://os.mbed.com/teams/ST/wiki/STDIO for more information.
hudakz 7:3a74f7149fa4 46 //
hudakz 7:3a74f7149fa4 47 //==============================================================================
hudakz 7:3a74f7149fa4 48
hudakz 7:3a74f7149fa4 49 #ifndef MBED_PERIPHERALPINMAPS_H
hudakz 7:3a74f7149fa4 50 #define MBED_PERIPHERALPINMAPS_H
hudakz 7:3a74f7149fa4 51
hudakz 7:3a74f7149fa4 52 #include <mstd_cstddef>
hudakz 7:3a74f7149fa4 53
hudakz 7:3a74f7149fa4 54 //*** ADC ***
hudakz 7:3a74f7149fa4 55
hudakz 7:3a74f7149fa4 56 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_ADC[] = {
hudakz 7:3a74f7149fa4 57 {PA_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
hudakz 7:3a74f7149fa4 58 {PA_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
hudakz 7:3a74f7149fa4 59 // {PA_2, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 // Connected to STDIO_UART_TX
hudakz 7:3a74f7149fa4 60 // {PA_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 // Connected to STDIO_UART_RX
hudakz 7:3a74f7149fa4 61 {PA_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
hudakz 7:3a74f7149fa4 62 // {PA_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 // Connected to LD2 [Green Led]
hudakz 7:3a74f7149fa4 63 {PA_6, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6
hudakz 7:3a74f7149fa4 64 {PA_7, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7
hudakz 7:3a74f7149fa4 65 {PB_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8
hudakz 7:3a74f7149fa4 66 {PB_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
hudakz 7:3a74f7149fa4 67 {PC_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10
hudakz 7:3a74f7149fa4 68 {PC_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
hudakz 7:3a74f7149fa4 69 {PC_2, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
hudakz 7:3a74f7149fa4 70 {PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
hudakz 7:3a74f7149fa4 71 {PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
hudakz 7:3a74f7149fa4 72 {PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
hudakz 7:3a74f7149fa4 73 {NC, NC, 0}
hudakz 7:3a74f7149fa4 74 };
hudakz 7:3a74f7149fa4 75
hudakz 7:3a74f7149fa4 76 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_ADC_Internal[] = {
hudakz 7:3a74f7149fa4 77 {ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
hudakz 7:3a74f7149fa4 78 {ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
hudakz 7:3a74f7149fa4 79 {ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)},
hudakz 7:3a74f7149fa4 80 {NC, NC, 0}
hudakz 7:3a74f7149fa4 81 };
hudakz 7:3a74f7149fa4 82
hudakz 7:3a74f7149fa4 83 //*** I2C ***
hudakz 7:3a74f7149fa4 84
hudakz 7:3a74f7149fa4 85 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_I2C_SDA[] = {
hudakz 7:3a74f7149fa4 86 {PB_3, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)}, // Connected to SWO
hudakz 7:3a74f7149fa4 87 {PB_4, I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C3)},
hudakz 7:3a74f7149fa4 88 {PB_7, I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
hudakz 7:3a74f7149fa4 89 {PB_8, I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C3)},
hudakz 7:3a74f7149fa4 90 {PB_9, I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
hudakz 7:3a74f7149fa4 91 {PB_9_ALT0, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)},
hudakz 7:3a74f7149fa4 92 {PC_9, I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
hudakz 7:3a74f7149fa4 93 {NC, NC, 0}
hudakz 7:3a74f7149fa4 94 };
hudakz 7:3a74f7149fa4 95
hudakz 7:3a74f7149fa4 96 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_I2C_SCL[] = {
hudakz 7:3a74f7149fa4 97 //{PA_8, I2C_3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, // Connected to MCO
hudakz 7:3a74f7149fa4 98 {PB_6, I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
hudakz 7:3a74f7149fa4 99 {PB_8, I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
hudakz 7:3a74f7149fa4 100 {PB_10, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
hudakz 7:3a74f7149fa4 101 {NC, NC, 0}
hudakz 7:3a74f7149fa4 102 };
hudakz 7:3a74f7149fa4 103
hudakz 7:3a74f7149fa4 104 //*** PWM ***
hudakz 7:3a74f7149fa4 105
hudakz 7:3a74f7149fa4 106 // TIM5 cannot be used because already used by the us_ticker
hudakz 7:3a74f7149fa4 107 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_PWM[] = {
hudakz 7:3a74f7149fa4 108 {PA_0, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
hudakz 7:3a74f7149fa4 109 // {PA_0, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
hudakz 7:3a74f7149fa4 110 {PA_1, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
hudakz 7:3a74f7149fa4 111 // {PA_1, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2
hudakz 7:3a74f7149fa4 112 // {PA_2, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 // Connected to STDIO_UART_TX
hudakz 7:3a74f7149fa4 113 // {PA_2, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 // Connected to STDIO_UART_TX
hudakz 7:3a74f7149fa4 114 // {PA_2, PWM_9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 // Connected to STDIO_UART_TX
hudakz 7:3a74f7149fa4 115 // {PA_3, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 // Connected to STDIO_UART_RX
hudakz 7:3a74f7149fa4 116 // {PA_3, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 // Connected to STDIO_UART_RX
hudakz 7:3a74f7149fa4 117 // {PA_3, PWM_9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 // Connected to STDIO_UART_RX
hudakz 7:3a74f7149fa4 118 {PA_5, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // Connected to LD2 [Green Led]
hudakz 7:3a74f7149fa4 119 {PA_6, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
hudakz 7:3a74f7149fa4 120 {PA_7, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
hudakz 7:3a74f7149fa4 121 {PA_7_ALT0, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
hudakz 7:3a74f7149fa4 122 {PA_8, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
hudakz 7:3a74f7149fa4 123 {PA_9, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
hudakz 7:3a74f7149fa4 124 {PA_10, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
hudakz 7:3a74f7149fa4 125 {PA_11, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
hudakz 7:3a74f7149fa4 126 {PA_15, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
hudakz 7:3a74f7149fa4 127 {PB_0, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
hudakz 7:3a74f7149fa4 128 {PB_0_ALT0, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
hudakz 7:3a74f7149fa4 129 {PB_1, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
hudakz 7:3a74f7149fa4 130 {PB_1_ALT0, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
hudakz 7:3a74f7149fa4 131 {PB_3, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 // Connected to SWO
hudakz 7:3a74f7149fa4 132 {PB_4, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
hudakz 7:3a74f7149fa4 133 {PB_5, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
hudakz 7:3a74f7149fa4 134 {PB_6, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
hudakz 7:3a74f7149fa4 135 {PB_7, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
hudakz 7:3a74f7149fa4 136 {PB_8, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
hudakz 7:3a74f7149fa4 137 {PB_8_ALT0, PWM_10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
hudakz 7:3a74f7149fa4 138 {PB_9, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
hudakz 7:3a74f7149fa4 139 {PB_9_ALT0, PWM_11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
hudakz 7:3a74f7149fa4 140 {PB_10, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
hudakz 7:3a74f7149fa4 141 {PB_13, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
hudakz 7:3a74f7149fa4 142 {PB_14, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
hudakz 7:3a74f7149fa4 143 {PB_15, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
hudakz 7:3a74f7149fa4 144 {PC_6, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
hudakz 7:3a74f7149fa4 145 {PC_7, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
hudakz 7:3a74f7149fa4 146 {PC_8, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
hudakz 7:3a74f7149fa4 147 {PC_9, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
hudakz 7:3a74f7149fa4 148 {NC, NC, 0}
hudakz 7:3a74f7149fa4 149 };
hudakz 7:3a74f7149fa4 150
hudakz 7:3a74f7149fa4 151 //*** SERIAL ***
hudakz 7:3a74f7149fa4 152
hudakz 7:3a74f7149fa4 153 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_TX[] = {
hudakz 7:3a74f7149fa4 154 {PA_2, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to STDIO_UART_TX
hudakz 7:3a74f7149fa4 155 {PA_9, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 156 {PA_11, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
hudakz 7:3a74f7149fa4 157 {PA_15, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 158 {PB_6, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 159 {PC_6, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
hudakz 7:3a74f7149fa4 160 {NC, NC, 0}
hudakz 7:3a74f7149fa4 161 };
hudakz 7:3a74f7149fa4 162
hudakz 7:3a74f7149fa4 163 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_RX[] = {
hudakz 7:3a74f7149fa4 164 {PA_3, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, // Connected to STDIO_UART_RX
hudakz 7:3a74f7149fa4 165 {PA_10, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 166 {PA_12, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
hudakz 7:3a74f7149fa4 167 {PB_3, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, // Connected to SWO
hudakz 7:3a74f7149fa4 168 {PB_7, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 169 {PC_7, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
hudakz 7:3a74f7149fa4 170 {NC, NC, 0}
hudakz 7:3a74f7149fa4 171 };
hudakz 7:3a74f7149fa4 172
hudakz 7:3a74f7149fa4 173 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_RTS[] = {
hudakz 7:3a74f7149fa4 174 {PA_1, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
hudakz 7:3a74f7149fa4 175 {PA_12, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 176 {NC, NC, 0}
hudakz 7:3a74f7149fa4 177 };
hudakz 7:3a74f7149fa4 178
hudakz 7:3a74f7149fa4 179 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_CTS[] = {
hudakz 7:3a74f7149fa4 180 {PA_0, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
hudakz 7:3a74f7149fa4 181 {PA_11, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
hudakz 7:3a74f7149fa4 182 {NC, NC, 0}
hudakz 7:3a74f7149fa4 183 };
hudakz 7:3a74f7149fa4 184
hudakz 7:3a74f7149fa4 185 //*** SPI ***
hudakz 7:3a74f7149fa4 186
hudakz 7:3a74f7149fa4 187 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_MOSI[] = {
hudakz 7:3a74f7149fa4 188 {PA_1, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
hudakz 7:3a74f7149fa4 189 {PA_7, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 190 {PA_10, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI5)},
hudakz 7:3a74f7149fa4 191 {PB_5, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 192 {PB_5_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 193 {PB_8, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI5)},
hudakz 7:3a74f7149fa4 194 {PB_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 195 {PC_3, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 196 {PC_12, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 197 {NC, NC, 0}
hudakz 7:3a74f7149fa4 198 };
hudakz 7:3a74f7149fa4 199
hudakz 7:3a74f7149fa4 200 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_MISO[] = {
hudakz 7:3a74f7149fa4 201 {PA_6, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 202 {PA_11, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
hudakz 7:3a74f7149fa4 203 {PA_12, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI5)},
hudakz 7:3a74f7149fa4 204 {PB_4, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 205 {PB_4_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 206 {PB_14, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 207 {PC_2, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 208 {PC_11, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 209 {NC, NC, 0}
hudakz 7:3a74f7149fa4 210 };
hudakz 7:3a74f7149fa4 211
hudakz 7:3a74f7149fa4 212 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_SCLK[] = {
hudakz 7:3a74f7149fa4 213 {PA_5, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to LD2 [Green Led]
hudakz 7:3a74f7149fa4 214 {PB_0, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI5)},
hudakz 7:3a74f7149fa4 215 {PB_3, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)}, // Connected to SWO
hudakz 7:3a74f7149fa4 216 {PB_3_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)}, // Connected to SWO
hudakz 7:3a74f7149fa4 217 {PB_10, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 218 {PB_12, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_SPI3)},
hudakz 7:3a74f7149fa4 219 {PB_13, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 220 {PB_13_ALT0, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
hudakz 7:3a74f7149fa4 221 {PC_7, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 222 {PC_10, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 223 {NC, NC, 0}
hudakz 7:3a74f7149fa4 224 };
hudakz 7:3a74f7149fa4 225
hudakz 7:3a74f7149fa4 226 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_SSEL[] = {
hudakz 7:3a74f7149fa4 227 {PA_4, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 228 {PA_4_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 229 {PA_15, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
hudakz 7:3a74f7149fa4 230 {PA_15_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
hudakz 7:3a74f7149fa4 231 {PB_1, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI5)},
hudakz 7:3a74f7149fa4 232 {PB_9, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 233 {PB_12, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
hudakz 7:3a74f7149fa4 234 {PB_12_ALT0, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI4)},
hudakz 7:3a74f7149fa4 235 {NC, NC, 0}
hudakz 7:3a74f7149fa4 236 };
hudakz 7:3a74f7149fa4 237
hudakz 7:3a74f7149fa4 238 //*** USBDEVICE ***
hudakz 7:3a74f7149fa4 239
hudakz 7:3a74f7149fa4 240 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_USB_FS[] = {
hudakz 7:3a74f7149fa4 241 // {PA_8, USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF
hudakz 7:3a74f7149fa4 242 {PA_9, USB_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_VBUS
hudakz 7:3a74f7149fa4 243 {PA_10, USB_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID
hudakz 7:3a74f7149fa4 244 {PA_11, USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM
hudakz 7:3a74f7149fa4 245 {PA_12, USB_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP
hudakz 7:3a74f7149fa4 246 {NC, NC, 0}
hudakz 7:3a74f7149fa4 247 };
hudakz 7:3a74f7149fa4 248
hudakz 7:3a74f7149fa4 249 #define PINMAP_ANALOGIN PinMap_ADC
hudakz 7:3a74f7149fa4 250 #define PINMAP_ANALOGIN_INTERNAL PinMap_ADC_Internal
hudakz 7:3a74f7149fa4 251 #define PINMAP_I2C_SDA PinMap_I2C_SDA
hudakz 7:3a74f7149fa4 252 #define PINMAP_I2C_SCL PinMap_I2C_SCL
hudakz 7:3a74f7149fa4 253 #define PINMAP_UART_TX PinMap_UART_TX
hudakz 7:3a74f7149fa4 254 #define PINMAP_UART_RX PinMap_UART_RX
hudakz 7:3a74f7149fa4 255 #define PINMAP_UART_CTS PinMap_UART_CTS
hudakz 7:3a74f7149fa4 256 #define PINMAP_UART_RTS PinMap_UART_RTS
hudakz 7:3a74f7149fa4 257 #define PINMAP_SPI_SCLK PinMap_SPI_SCLK
hudakz 7:3a74f7149fa4 258 #define PINMAP_SPI_MOSI PinMap_SPI_MOSI
hudakz 7:3a74f7149fa4 259 #define PINMAP_SPI_MISO PinMap_SPI_MISO
hudakz 7:3a74f7149fa4 260 #define PINMAP_SPI_SSEL PinMap_SPI_SSEL
hudakz 7:3a74f7149fa4 261 #define PINMAP_PWM PinMap_PWM
hudakz 7:3a74f7149fa4 262
hudakz 7:3a74f7149fa4 263 #endif