Bare-metal configuration for a Bluepill board.
Warning
It does not work with the Mbed Online Compiler.
Follow these steps to import and compile them with Mbed CLI:
mbed import https://os.mbed.com/users/hudakz/code/Baremetal_Blinky_Bluepill mbed compile -t GCC_ARM -m bluepill
TARGET_BLUEPILL/PinNames.h@0:a04710facbb6, 2020-05-14 (annotated)
- Committer:
- hudakz
- Date:
- Thu May 14 05:25:26 2020 +0000
- Revision:
- 0:a04710facbb6
Bare-metal configuration for a Bluepill board.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hudakz | 0:a04710facbb6 | 1 | /* mbed Microcontroller Library |
hudakz | 0:a04710facbb6 | 2 | ******************************************************************************* |
hudakz | 0:a04710facbb6 | 3 | * Copyright (c) 2014, STMicroelectronics |
hudakz | 0:a04710facbb6 | 4 | * All rights reserved. |
hudakz | 0:a04710facbb6 | 5 | * |
hudakz | 0:a04710facbb6 | 6 | * Redistribution and use in source and binary forms, with or without |
hudakz | 0:a04710facbb6 | 7 | * modification, are permitted provided that the following conditions are met: |
hudakz | 0:a04710facbb6 | 8 | * |
hudakz | 0:a04710facbb6 | 9 | * 1. Redistributions of source code must retain the above copyright notice, |
hudakz | 0:a04710facbb6 | 10 | * this list of conditions and the following disclaimer. |
hudakz | 0:a04710facbb6 | 11 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
hudakz | 0:a04710facbb6 | 12 | * this list of conditions and the following disclaimer in the documentation |
hudakz | 0:a04710facbb6 | 13 | * and/or other materials provided with the distribution. |
hudakz | 0:a04710facbb6 | 14 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
hudakz | 0:a04710facbb6 | 15 | * may be used to endorse or promote products derived from this software |
hudakz | 0:a04710facbb6 | 16 | * without specific prior written permission. |
hudakz | 0:a04710facbb6 | 17 | * |
hudakz | 0:a04710facbb6 | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
hudakz | 0:a04710facbb6 | 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
hudakz | 0:a04710facbb6 | 20 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
hudakz | 0:a04710facbb6 | 21 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
hudakz | 0:a04710facbb6 | 22 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
hudakz | 0:a04710facbb6 | 23 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
hudakz | 0:a04710facbb6 | 24 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
hudakz | 0:a04710facbb6 | 25 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
hudakz | 0:a04710facbb6 | 26 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
hudakz | 0:a04710facbb6 | 27 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
hudakz | 0:a04710facbb6 | 28 | ******************************************************************************* |
hudakz | 0:a04710facbb6 | 29 | */ |
hudakz | 0:a04710facbb6 | 30 | #ifndef MBED_PINNAMES_H |
hudakz | 0:a04710facbb6 | 31 | #define MBED_PINNAMES_H |
hudakz | 0:a04710facbb6 | 32 | |
hudakz | 0:a04710facbb6 | 33 | #include "cmsis.h" |
hudakz | 0:a04710facbb6 | 34 | #include "PinNamesTypes.h" |
hudakz | 0:a04710facbb6 | 35 | |
hudakz | 0:a04710facbb6 | 36 | #ifdef __cplusplus |
hudakz | 0:a04710facbb6 | 37 | extern "C" { |
hudakz | 0:a04710facbb6 | 38 | #endif |
hudakz | 0:a04710facbb6 | 39 | |
hudakz | 0:a04710facbb6 | 40 | typedef enum { |
hudakz | 0:a04710facbb6 | 41 | ALT0 = 0x100, |
hudakz | 0:a04710facbb6 | 42 | ALT1 = 0x200, |
hudakz | 0:a04710facbb6 | 43 | ALT2 = 0x300, |
hudakz | 0:a04710facbb6 | 44 | ALT3 = 0x400 |
hudakz | 0:a04710facbb6 | 45 | } ALTx; |
hudakz | 0:a04710facbb6 | 46 | |
hudakz | 0:a04710facbb6 | 47 | typedef enum { |
hudakz | 0:a04710facbb6 | 48 | PA_0 = 0x00, |
hudakz | 0:a04710facbb6 | 49 | PA_1 = 0x01, |
hudakz | 0:a04710facbb6 | 50 | PA_2 = 0x02, |
hudakz | 0:a04710facbb6 | 51 | PA_3 = 0x03, |
hudakz | 0:a04710facbb6 | 52 | PA_4 = 0x04, |
hudakz | 0:a04710facbb6 | 53 | PA_5 = 0x05, |
hudakz | 0:a04710facbb6 | 54 | PA_6 = 0x06, |
hudakz | 0:a04710facbb6 | 55 | PA_7 = 0x07, |
hudakz | 0:a04710facbb6 | 56 | PA_7_ALT0 = 0x07 | ALT0, |
hudakz | 0:a04710facbb6 | 57 | PA_8 = 0x08, |
hudakz | 0:a04710facbb6 | 58 | PA_9 = 0x09, |
hudakz | 0:a04710facbb6 | 59 | PA_10 = 0x0A, |
hudakz | 0:a04710facbb6 | 60 | PA_11 = 0x0B, |
hudakz | 0:a04710facbb6 | 61 | PA_12 = 0x0C, |
hudakz | 0:a04710facbb6 | 62 | PA_13 = 0x0D, |
hudakz | 0:a04710facbb6 | 63 | PA_14 = 0x0E, |
hudakz | 0:a04710facbb6 | 64 | PA_15 = 0x0F, |
hudakz | 0:a04710facbb6 | 65 | |
hudakz | 0:a04710facbb6 | 66 | PB_0 = 0x10, |
hudakz | 0:a04710facbb6 | 67 | PB_0_ALT0 = 0x10 | ALT0, |
hudakz | 0:a04710facbb6 | 68 | PB_1 = 0x11, |
hudakz | 0:a04710facbb6 | 69 | PB_1_ALT0 = 0x11 | ALT0, |
hudakz | 0:a04710facbb6 | 70 | PB_2 = 0x12, |
hudakz | 0:a04710facbb6 | 71 | PB_3 = 0x13, |
hudakz | 0:a04710facbb6 | 72 | PB_4 = 0x14, |
hudakz | 0:a04710facbb6 | 73 | PB_5 = 0x15, |
hudakz | 0:a04710facbb6 | 74 | PB_6 = 0x16, |
hudakz | 0:a04710facbb6 | 75 | PB_7 = 0x17, |
hudakz | 0:a04710facbb6 | 76 | PB_8 = 0x18, |
hudakz | 0:a04710facbb6 | 77 | PB_9 = 0x19, |
hudakz | 0:a04710facbb6 | 78 | PB_10 = 0x1A, |
hudakz | 0:a04710facbb6 | 79 | PB_11 = 0x1B, |
hudakz | 0:a04710facbb6 | 80 | PB_12 = 0x1C, |
hudakz | 0:a04710facbb6 | 81 | PB_13 = 0x1D, |
hudakz | 0:a04710facbb6 | 82 | PB_14 = 0x1E, |
hudakz | 0:a04710facbb6 | 83 | PB_15 = 0x1F, |
hudakz | 0:a04710facbb6 | 84 | |
hudakz | 0:a04710facbb6 | 85 | PC_0 = 0x20, |
hudakz | 0:a04710facbb6 | 86 | PC_1 = 0x21, |
hudakz | 0:a04710facbb6 | 87 | PC_2 = 0x22, |
hudakz | 0:a04710facbb6 | 88 | PC_3 = 0x23, |
hudakz | 0:a04710facbb6 | 89 | PC_4 = 0x24, |
hudakz | 0:a04710facbb6 | 90 | PC_5 = 0x25, |
hudakz | 0:a04710facbb6 | 91 | PC_6 = 0x26, |
hudakz | 0:a04710facbb6 | 92 | PC_7 = 0x27, |
hudakz | 0:a04710facbb6 | 93 | PC_8 = 0x28, |
hudakz | 0:a04710facbb6 | 94 | PC_9 = 0x29, |
hudakz | 0:a04710facbb6 | 95 | PC_10 = 0x2A, |
hudakz | 0:a04710facbb6 | 96 | PC_11 = 0x2B, |
hudakz | 0:a04710facbb6 | 97 | PC_12 = 0x2C, |
hudakz | 0:a04710facbb6 | 98 | PC_13 = 0x2D, |
hudakz | 0:a04710facbb6 | 99 | PC_14 = 0x2E, |
hudakz | 0:a04710facbb6 | 100 | PC_15 = 0x2F, |
hudakz | 0:a04710facbb6 | 101 | |
hudakz | 0:a04710facbb6 | 102 | PD_2 = 0x32, |
hudakz | 0:a04710facbb6 | 103 | |
hudakz | 0:a04710facbb6 | 104 | // ADC internal channels |
hudakz | 0:a04710facbb6 | 105 | ADC_TEMP = 0xF0, |
hudakz | 0:a04710facbb6 | 106 | ADC_VREF = 0xF1, |
hudakz | 0:a04710facbb6 | 107 | |
hudakz | 0:a04710facbb6 | 108 | // PCB printout |
hudakz | 0:a04710facbb6 | 109 | A0 = PA_0, |
hudakz | 0:a04710facbb6 | 110 | A1 = PA_1, |
hudakz | 0:a04710facbb6 | 111 | A2 = PA_2, |
hudakz | 0:a04710facbb6 | 112 | A3 = PA_3, |
hudakz | 0:a04710facbb6 | 113 | A4 = PA_4, |
hudakz | 0:a04710facbb6 | 114 | A5 = PA_5, |
hudakz | 0:a04710facbb6 | 115 | A6 = PA_6, |
hudakz | 0:a04710facbb6 | 116 | A7 = PA_7, |
hudakz | 0:a04710facbb6 | 117 | A8 = PA_8, |
hudakz | 0:a04710facbb6 | 118 | A9 = PA_9, |
hudakz | 0:a04710facbb6 | 119 | A10 = PA_10, |
hudakz | 0:a04710facbb6 | 120 | A11 = PA_11, |
hudakz | 0:a04710facbb6 | 121 | A12 = PA_12, |
hudakz | 0:a04710facbb6 | 122 | A15 = PA_15, |
hudakz | 0:a04710facbb6 | 123 | |
hudakz | 0:a04710facbb6 | 124 | B0 = PB_0, |
hudakz | 0:a04710facbb6 | 125 | B1 = PB_1, |
hudakz | 0:a04710facbb6 | 126 | B2 = PB_2, |
hudakz | 0:a04710facbb6 | 127 | B3 = PB_3, |
hudakz | 0:a04710facbb6 | 128 | B4 = PB_4, |
hudakz | 0:a04710facbb6 | 129 | B5 = PB_5, |
hudakz | 0:a04710facbb6 | 130 | B6 = PB_6, |
hudakz | 0:a04710facbb6 | 131 | B7 = PB_7, |
hudakz | 0:a04710facbb6 | 132 | B8 = PB_8, |
hudakz | 0:a04710facbb6 | 133 | B9 = PB_9, |
hudakz | 0:a04710facbb6 | 134 | B10 = PB_10, |
hudakz | 0:a04710facbb6 | 135 | B11 = PB_11, |
hudakz | 0:a04710facbb6 | 136 | B12 = PB_12, |
hudakz | 0:a04710facbb6 | 137 | B13 = PB_13, |
hudakz | 0:a04710facbb6 | 138 | B14 = PB_14, |
hudakz | 0:a04710facbb6 | 139 | B15 = PB_15, |
hudakz | 0:a04710facbb6 | 140 | |
hudakz | 0:a04710facbb6 | 141 | C13 = PC_13, |
hudakz | 0:a04710facbb6 | 142 | C14 = PC_14, |
hudakz | 0:a04710facbb6 | 143 | C15 = PC_15, |
hudakz | 0:a04710facbb6 | 144 | |
hudakz | 0:a04710facbb6 | 145 | // STDIO for console print |
hudakz | 0:a04710facbb6 | 146 | #ifdef MBED_CONF_TARGET_STDIO_UART_TX |
hudakz | 0:a04710facbb6 | 147 | STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX, |
hudakz | 0:a04710facbb6 | 148 | #else |
hudakz | 0:a04710facbb6 | 149 | STDIO_UART_TX = PA_2, |
hudakz | 0:a04710facbb6 | 150 | #endif |
hudakz | 0:a04710facbb6 | 151 | #ifdef MBED_CONF_TARGET_STDIO_UART_RX |
hudakz | 0:a04710facbb6 | 152 | STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX, |
hudakz | 0:a04710facbb6 | 153 | #else |
hudakz | 0:a04710facbb6 | 154 | STDIO_UART_RX = PA_3, |
hudakz | 0:a04710facbb6 | 155 | #endif |
hudakz | 0:a04710facbb6 | 156 | |
hudakz | 0:a04710facbb6 | 157 | // Generic signals namings |
hudakz | 0:a04710facbb6 | 158 | LED1 = PC_13, |
hudakz | 0:a04710facbb6 | 159 | LED2 = PC_13, |
hudakz | 0:a04710facbb6 | 160 | LED3 = PC_13, |
hudakz | 0:a04710facbb6 | 161 | LED4 = PC_13, |
hudakz | 0:a04710facbb6 | 162 | SERIAL_TX = STDIO_UART_TX, |
hudakz | 0:a04710facbb6 | 163 | SERIAL_RX = STDIO_UART_RX, |
hudakz | 0:a04710facbb6 | 164 | USBTX = STDIO_UART_TX, |
hudakz | 0:a04710facbb6 | 165 | USBRX = STDIO_UART_RX, |
hudakz | 0:a04710facbb6 | 166 | I2C_SCL = PB_6, |
hudakz | 0:a04710facbb6 | 167 | I2C_SDA = PB_7, |
hudakz | 0:a04710facbb6 | 168 | SPI_MOSI = PA_7, |
hudakz | 0:a04710facbb6 | 169 | SPI_MISO = PA_6, |
hudakz | 0:a04710facbb6 | 170 | SPI_SCK = PA_5, |
hudakz | 0:a04710facbb6 | 171 | SPI_CS = PA_4, |
hudakz | 0:a04710facbb6 | 172 | PWM_OUT = PB_5, |
hudakz | 0:a04710facbb6 | 173 | |
hudakz | 0:a04710facbb6 | 174 | //USB pins |
hudakz | 0:a04710facbb6 | 175 | USB_DM = PA_11, |
hudakz | 0:a04710facbb6 | 176 | USB_DP = PA_12, |
hudakz | 0:a04710facbb6 | 177 | |
hudakz | 0:a04710facbb6 | 178 | // Not connected |
hudakz | 0:a04710facbb6 | 179 | NC = (int)0xFFFFFFFF |
hudakz | 0:a04710facbb6 | 180 | } PinName; |
hudakz | 0:a04710facbb6 | 181 | |
hudakz | 0:a04710facbb6 | 182 | #ifdef __cplusplus |
hudakz | 0:a04710facbb6 | 183 | } |
hudakz | 0:a04710facbb6 | 184 | #endif |
hudakz | 0:a04710facbb6 | 185 | |
hudakz | 0:a04710facbb6 | 186 | #endif |