mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 610:813dcc80987e 1 /* mbed Microcontroller Library
mbed_official 610:813dcc80987e 2 *******************************************************************************
mbed_official 610:813dcc80987e 3 * Copyright (c) 2015, STMicroelectronics
mbed_official 610:813dcc80987e 4 * All rights reserved.
mbed_official 610:813dcc80987e 5 *
mbed_official 610:813dcc80987e 6 * Redistribution and use in source and binary forms, with or without
mbed_official 610:813dcc80987e 7 * modification, are permitted provided that the following conditions are met:
mbed_official 610:813dcc80987e 8 *
mbed_official 610:813dcc80987e 9 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 610:813dcc80987e 10 * this list of conditions and the following disclaimer.
mbed_official 610:813dcc80987e 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 610:813dcc80987e 12 * this list of conditions and the following disclaimer in the documentation
mbed_official 610:813dcc80987e 13 * and/or other materials provided with the distribution.
mbed_official 610:813dcc80987e 14 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 610:813dcc80987e 15 * may be used to endorse or promote products derived from this software
mbed_official 610:813dcc80987e 16 * without specific prior written permission.
mbed_official 610:813dcc80987e 17 *
mbed_official 610:813dcc80987e 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 610:813dcc80987e 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 610:813dcc80987e 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 610:813dcc80987e 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 610:813dcc80987e 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 610:813dcc80987e 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 610:813dcc80987e 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 610:813dcc80987e 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 610:813dcc80987e 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 610:813dcc80987e 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 610:813dcc80987e 28 *******************************************************************************
mbed_official 610:813dcc80987e 29 */
mbed_official 610:813dcc80987e 30 #ifndef MBED_PINNAMES_H
mbed_official 610:813dcc80987e 31 #define MBED_PINNAMES_H
mbed_official 610:813dcc80987e 32
mbed_official 610:813dcc80987e 33 #include "cmsis.h"
mbed_official 610:813dcc80987e 34
mbed_official 610:813dcc80987e 35 #ifdef __cplusplus
mbed_official 610:813dcc80987e 36 extern "C" {
mbed_official 610:813dcc80987e 37 #endif
mbed_official 610:813dcc80987e 38
mbed_official 610:813dcc80987e 39 #define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((MODE & 0x0F) << 0) |\
mbed_official 610:813dcc80987e 40 ((PUPD & 0x07) << 4) |\
mbed_official 610:813dcc80987e 41 ((AFNUM & 0x0F) << 7)))
mbed_official 610:813dcc80987e 42
mbed_official 610:813dcc80987e 43 #define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((MODE & 0x0F) << 0) |\
mbed_official 610:813dcc80987e 44 ((PUPD & 0x07) << 4) |\
mbed_official 610:813dcc80987e 45 ((AFNUM & 0x0F) << 7) |\
mbed_official 610:813dcc80987e 46 ((CHANNEL & 0x0F) << 11) |\
mbed_official 610:813dcc80987e 47 ((INVERTED & 0x01) << 15)))
mbed_official 610:813dcc80987e 48
mbed_official 610:813dcc80987e 49 #define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
mbed_official 610:813dcc80987e 50 #define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
mbed_official 610:813dcc80987e 51 #define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
mbed_official 610:813dcc80987e 52 #define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
mbed_official 610:813dcc80987e 53 #define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
mbed_official 610:813dcc80987e 54
mbed_official 610:813dcc80987e 55 #define STM_MODE_INPUT (0)
mbed_official 610:813dcc80987e 56 #define STM_MODE_OUTPUT_PP (1)
mbed_official 610:813dcc80987e 57 #define STM_MODE_OUTPUT_OD (2)
mbed_official 610:813dcc80987e 58 #define STM_MODE_AF_PP (3)
mbed_official 610:813dcc80987e 59 #define STM_MODE_AF_OD (4)
mbed_official 610:813dcc80987e 60 #define STM_MODE_ANALOG (5)
mbed_official 610:813dcc80987e 61 #define STM_MODE_ANALOG_ADC_CONTROL (6)
mbed_official 610:813dcc80987e 62 #define STM_MODE_IT_RISING (7)
mbed_official 610:813dcc80987e 63 #define STM_MODE_IT_FALLING (8)
mbed_official 610:813dcc80987e 64 #define STM_MODE_IT_RISING_FALLING (9)
mbed_official 610:813dcc80987e 65 #define STM_MODE_EVT_RISING (10)
mbed_official 610:813dcc80987e 66 #define STM_MODE_EVT_FALLING (11)
mbed_official 610:813dcc80987e 67 #define STM_MODE_EVT_RISING_FALLING (12)
mbed_official 610:813dcc80987e 68 #define STM_MODE_IT_EVT_RESET (13)
mbed_official 610:813dcc80987e 69
mbed_official 610:813dcc80987e 70 // High nibble = port number (0=A, 1=B, 2=C, 3=D, 4=E, 5=F, 6=G, 7=H)
mbed_official 610:813dcc80987e 71 // Low nibble = pin number
mbed_official 610:813dcc80987e 72 #define STM_PORT(X) (((uint32_t)(X) >> 4) & 0xF)
mbed_official 610:813dcc80987e 73 #define STM_PIN(X) ((uint32_t)(X) & 0xF)
mbed_official 610:813dcc80987e 74
mbed_official 610:813dcc80987e 75 typedef enum {
mbed_official 610:813dcc80987e 76 PIN_INPUT,
mbed_official 610:813dcc80987e 77 PIN_OUTPUT
mbed_official 610:813dcc80987e 78 } PinDirection;
mbed_official 610:813dcc80987e 79
mbed_official 610:813dcc80987e 80 typedef enum {
mbed_official 610:813dcc80987e 81 PA_0 = 0x00, // On P1/P2 connectors
mbed_official 610:813dcc80987e 82 PA_1 = 0x01, // On P1/P2 connectors
mbed_official 610:813dcc80987e 83 PA_2 = 0x02, // On P1/P2 connectors
mbed_official 610:813dcc80987e 84 PA_3 = 0x03, // On P1/P2 connectors
mbed_official 610:813dcc80987e 85 PA_4 = 0x04,
mbed_official 610:813dcc80987e 86 PA_5 = 0x05, // On P1/P2 connectors
mbed_official 610:813dcc80987e 87 PA_6 = 0x06,
mbed_official 610:813dcc80987e 88 PA_7 = 0x07,
mbed_official 610:813dcc80987e 89 PA_8 = 0x08,
mbed_official 610:813dcc80987e 90 PA_9 = 0x09,
mbed_official 610:813dcc80987e 91 PA_10 = 0x0A,
mbed_official 610:813dcc80987e 92 PA_11 = 0x0B,
mbed_official 610:813dcc80987e 93 PA_12 = 0x0C,
mbed_official 610:813dcc80987e 94 PA_13 = 0x0D,
mbed_official 610:813dcc80987e 95 PA_14 = 0x0E,
mbed_official 610:813dcc80987e 96 PA_15 = 0x0F,
mbed_official 610:813dcc80987e 97
mbed_official 610:813dcc80987e 98 PB_0 = 0x10,
mbed_official 610:813dcc80987e 99 PB_1 = 0x11,
mbed_official 610:813dcc80987e 100 PB_2 = 0x12, // On P1/P2 connectors
mbed_official 610:813dcc80987e 101 PB_3 = 0x13, // On P1/P2 connectors
mbed_official 610:813dcc80987e 102 PB_4 = 0x14,
mbed_official 610:813dcc80987e 103 PB_5 = 0x15,
mbed_official 610:813dcc80987e 104 PB_6 = 0x16,
mbed_official 610:813dcc80987e 105 PB_7 = 0x17,
mbed_official 610:813dcc80987e 106 PB_8 = 0x18, // On P1/P2 connectors
mbed_official 610:813dcc80987e 107 PB_9 = 0x19, // On P1/P2 connectors
mbed_official 610:813dcc80987e 108 PB_10 = 0x1A,
mbed_official 610:813dcc80987e 109 PB_11 = 0x1B,
mbed_official 610:813dcc80987e 110 PB_12 = 0x1C,
mbed_official 610:813dcc80987e 111 PB_13 = 0x1D,
mbed_official 610:813dcc80987e 112 PB_14 = 0x1E,
mbed_official 610:813dcc80987e 113 PB_15 = 0x1F,
mbed_official 610:813dcc80987e 114
mbed_official 610:813dcc80987e 115 PC_0 = 0x20,
mbed_official 610:813dcc80987e 116 PC_1 = 0x21,
mbed_official 610:813dcc80987e 117 PC_2 = 0x22,
mbed_official 610:813dcc80987e 118 PC_3 = 0x23,
mbed_official 610:813dcc80987e 119 PC_4 = 0x24,
mbed_official 610:813dcc80987e 120 PC_5 = 0x25,
mbed_official 610:813dcc80987e 121 PC_6 = 0x26,
mbed_official 610:813dcc80987e 122 PC_7 = 0x27,
mbed_official 610:813dcc80987e 123 PC_8 = 0x28,
mbed_official 610:813dcc80987e 124 PC_9 = 0x29,
mbed_official 610:813dcc80987e 125 PC_10 = 0x2A,
mbed_official 610:813dcc80987e 126 PC_11 = 0x2B,
mbed_official 610:813dcc80987e 127 PC_12 = 0x2C,
mbed_official 610:813dcc80987e 128 PC_13 = 0x2D,
mbed_official 610:813dcc80987e 129 PC_14 = 0x2E, // On P1/P2 connectors
mbed_official 610:813dcc80987e 130 PC_15 = 0x2F, // On P1/P2 connectors
mbed_official 610:813dcc80987e 131
mbed_official 610:813dcc80987e 132 PD_0 = 0x30, // On P1/P2 connectors
mbed_official 610:813dcc80987e 133 PD_1 = 0x31,
mbed_official 610:813dcc80987e 134 PD_2 = 0x32,
mbed_official 610:813dcc80987e 135 PD_3 = 0x33,
mbed_official 610:813dcc80987e 136 PD_4 = 0x34,
mbed_official 610:813dcc80987e 137 PD_5 = 0x35,
mbed_official 610:813dcc80987e 138 PD_6 = 0x36,
mbed_official 610:813dcc80987e 139 PD_7 = 0x37,
mbed_official 610:813dcc80987e 140 PD_8 = 0x38,
mbed_official 610:813dcc80987e 141 PD_9 = 0x39,
mbed_official 610:813dcc80987e 142 PD_10 = 0x3A,
mbed_official 610:813dcc80987e 143 PD_11 = 0x3B,
mbed_official 610:813dcc80987e 144 PD_12 = 0x3C,
mbed_official 610:813dcc80987e 145 PD_13 = 0x3D,
mbed_official 610:813dcc80987e 146 PD_14 = 0x3E,
mbed_official 610:813dcc80987e 147 PD_15 = 0x3F,
mbed_official 610:813dcc80987e 148
mbed_official 610:813dcc80987e 149 PE_0 = 0x40,
mbed_official 610:813dcc80987e 150 PE_1 = 0x41,
mbed_official 610:813dcc80987e 151 PE_2 = 0x42,
mbed_official 610:813dcc80987e 152 PE_3 = 0x43,
mbed_official 610:813dcc80987e 153 PE_4 = 0x44,
mbed_official 610:813dcc80987e 154 PE_5 = 0x45,
mbed_official 610:813dcc80987e 155 PE_6 = 0x46,
mbed_official 610:813dcc80987e 156 PE_7 = 0x47,
mbed_official 610:813dcc80987e 157 PE_8 = 0x48, // On P1/P2 connectors
mbed_official 610:813dcc80987e 158 PE_9 = 0x49,
mbed_official 610:813dcc80987e 159 PE_10 = 0x4A, // On P1/P2 connectors
mbed_official 610:813dcc80987e 160 PE_11 = 0x4B, // On P1/P2 connectors
mbed_official 610:813dcc80987e 161 PE_12 = 0x4C, // On P1/P2 connectors
mbed_official 610:813dcc80987e 162 PE_13 = 0x4D, // On P1/P2 connectors
mbed_official 610:813dcc80987e 163 PE_14 = 0x4E, // On P1/P2 connectors
mbed_official 610:813dcc80987e 164 PE_15 = 0x4F, // On P1/P2 connectors
mbed_official 610:813dcc80987e 165
mbed_official 610:813dcc80987e 166 PH_0 = 0x70, // On P1/P2 connectors
mbed_official 610:813dcc80987e 167 PH_1 = 0x71, // On P1/P2 connectors
mbed_official 610:813dcc80987e 168
mbed_official 610:813dcc80987e 169 // Generic signals namings
mbed_official 610:813dcc80987e 170 LED1 = PE_8, // LD5 Green
mbed_official 610:813dcc80987e 171 LED2 = PB_2, // LD4 Red
mbed_official 610:813dcc80987e 172 LED3 = LED1,
mbed_official 610:813dcc80987e 173 LED4 = LED2,
mbed_official 610:813dcc80987e 174 JOYSTICK_CENTER = PA_0,
mbed_official 610:813dcc80987e 175 JOYSTICK_LEFT = PA_1,
mbed_official 610:813dcc80987e 176 JOYSTICK_RIGHT = PA_2,
mbed_official 610:813dcc80987e 177 JOYSTICK_UP = PA_3,
mbed_official 610:813dcc80987e 178 JOYSTICK_DOWN = PA_5,
mbed_official 610:813dcc80987e 179 USER_BUTTON = JOYSTICK_CENTER,
mbed_official 610:813dcc80987e 180 SERIAL_TX = PD_5,
mbed_official 610:813dcc80987e 181 SERIAL_RX = PD_6,
mbed_official 610:813dcc80987e 182 USBTX = PD_5,
mbed_official 610:813dcc80987e 183 USBRX = PD_6,
mbed_official 610:813dcc80987e 184
mbed_official 610:813dcc80987e 185 // Not connected
mbed_official 610:813dcc80987e 186 NC = (int)0xFFFFFFFF
mbed_official 610:813dcc80987e 187 } PinName;
mbed_official 610:813dcc80987e 188
mbed_official 610:813dcc80987e 189 typedef enum {
mbed_official 610:813dcc80987e 190 PullNone = 0,
mbed_official 610:813dcc80987e 191 PullUp = 1,
mbed_official 610:813dcc80987e 192 PullDown = 2,
mbed_official 610:813dcc80987e 193 OpenDrain = 3,
mbed_official 610:813dcc80987e 194 PullDefault = PullNone
mbed_official 610:813dcc80987e 195 } PinMode;
mbed_official 610:813dcc80987e 196
mbed_official 610:813dcc80987e 197 #ifdef __cplusplus
mbed_official 610:813dcc80987e 198 }
mbed_official 610:813dcc80987e 199 #endif
mbed_official 610:813dcc80987e 200
mbed_official 610:813dcc80987e 201 #endif