mbed library sources for GR-PEACH rev.B.

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Thu Apr 09 12:15:08 2015 +0100
Revision:
511:532f83b66a7f
Parent:
478:9f3d4ee935ce
Synchronized with git revision 5a81e89daabb57e88c45a1c1979735071b85fa00

Full URL: https://github.com/mbedmicro/mbed/commit/5a81e89daabb57e88c45a1c1979735071b85fa00/

TARGET_STMF4 - reorg hal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 464:04583941e294 1 /* mbed Microcontroller Library
mbed_official 464:04583941e294 2 *******************************************************************************
mbed_official 464:04583941e294 3 * Copyright (c) 2014, STMicroelectronics
mbed_official 464:04583941e294 4 * All rights reserved.
mbed_official 464:04583941e294 5 *
mbed_official 464:04583941e294 6 * Redistribution and use in source and binary forms, with or without
mbed_official 464:04583941e294 7 * modification, are permitted provided that the following conditions are met:
mbed_official 464:04583941e294 8 *
mbed_official 464:04583941e294 9 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 464:04583941e294 10 * this list of conditions and the following disclaimer.
mbed_official 464:04583941e294 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 464:04583941e294 12 * this list of conditions and the following disclaimer in the documentation
mbed_official 464:04583941e294 13 * and/or other materials provided with the distribution.
mbed_official 464:04583941e294 14 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 464:04583941e294 15 * may be used to endorse or promote products derived from this software
mbed_official 464:04583941e294 16 * without specific prior written permission.
mbed_official 464:04583941e294 17 *
mbed_official 464:04583941e294 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 464:04583941e294 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 464:04583941e294 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 464:04583941e294 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 464:04583941e294 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 464:04583941e294 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 464:04583941e294 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 464:04583941e294 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 464:04583941e294 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 464:04583941e294 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 464:04583941e294 28 *******************************************************************************
mbed_official 464:04583941e294 29 */
mbed_official 464:04583941e294 30
mbed_official 464:04583941e294 31 #include "PeripheralPins.h"
mbed_official 464:04583941e294 32
mbed_official 464:04583941e294 33 // =====
mbed_official 464:04583941e294 34 // Note: Commented lines are alternative possibilities which are not used per default.
mbed_official 464:04583941e294 35 // If you change them, you will have also to modify the corresponding xxx_api.c file
mbed_official 464:04583941e294 36 // for pwmout, analogin, analogout, ...
mbed_official 464:04583941e294 37 // =====
mbed_official 464:04583941e294 38
mbed_official 464:04583941e294 39 //*** ADC ***
mbed_official 464:04583941e294 40
mbed_official 464:04583941e294 41 const PinMap PinMap_ADC[] = {
mbed_official 511:532f83b66a7f 42 {PA_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
mbed_official 511:532f83b66a7f 43 {PA_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
mbed_official 511:532f83b66a7f 44 {PA_2, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2
mbed_official 511:532f83b66a7f 45 {PA_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3
mbed_official 511:532f83b66a7f 46 {PA_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
mbed_official 511:532f83b66a7f 47 {PA_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5
mbed_official 511:532f83b66a7f 48 {PA_6, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6
mbed_official 511:532f83b66a7f 49 {PA_7, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7
mbed_official 511:532f83b66a7f 50 {PB_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8
mbed_official 511:532f83b66a7f 51 {PB_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
mbed_official 511:532f83b66a7f 52 {PC_0, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10
mbed_official 511:532f83b66a7f 53 {PC_1, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
mbed_official 511:532f83b66a7f 54 {PC_2, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
mbed_official 511:532f83b66a7f 55 {PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
mbed_official 511:532f83b66a7f 56 {PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
mbed_official 511:532f83b66a7f 57 {PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
mbed_official 464:04583941e294 58
mbed_official 511:532f83b66a7f 59 {PF_6, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4
mbed_official 511:532f83b66a7f 60 {PF_7, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5
mbed_official 511:532f83b66a7f 61 {PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
mbed_official 511:532f83b66a7f 62 {PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
mbed_official 511:532f83b66a7f 63 {PF_10,ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
mbed_official 511:532f83b66a7f 64 {PF_3, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC3_IN9
mbed_official 511:532f83b66a7f 65 {PF_4, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC3_IN14
mbed_official 511:532f83b66a7f 66 {PF_5, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC3_IN15
mbed_official 464:04583941e294 67 {NC, NC, 0}
mbed_official 464:04583941e294 68 };
mbed_official 464:04583941e294 69
mbed_official 464:04583941e294 70 //*** I2C ***
mbed_official 464:04583941e294 71
mbed_official 464:04583941e294 72 const PinMap PinMap_I2C_SDA[] = {
mbed_official 464:04583941e294 73 {PF_0, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
mbed_official 464:04583941e294 74 {NC, NC, 0}
mbed_official 464:04583941e294 75 };
mbed_official 464:04583941e294 76
mbed_official 464:04583941e294 77 const PinMap PinMap_I2C_SCL[] = {
mbed_official 464:04583941e294 78 {PF_1, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
mbed_official 464:04583941e294 79 {NC, NC, 0}
mbed_official 464:04583941e294 80 };
mbed_official 464:04583941e294 81
mbed_official 464:04583941e294 82 //*** PWM ***
mbed_official 464:04583941e294 83
mbed_official 464:04583941e294 84 // TIM5 cannot be used because already used by the us_ticker
mbed_official 464:04583941e294 85 const PinMap PinMap_PWM[] = {
mbed_official 511:532f83b66a7f 86 {PA_0, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
mbed_official 511:532f83b66a7f 87 // {PA_0, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
mbed_official 511:532f83b66a7f 88 {PA_1, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
mbed_official 511:532f83b66a7f 89 // {PA_1, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2
mbed_official 511:532f83b66a7f 90 {PA_2, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
mbed_official 511:532f83b66a7f 91 // {PA_2, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3
mbed_official 511:532f83b66a7f 92 // {PA_2, PWM_9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
mbed_official 511:532f83b66a7f 93 {PA_3, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
mbed_official 511:532f83b66a7f 94 // {PA_3, PWM_5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4
mbed_official 511:532f83b66a7f 95 // {PA_3, PWM_9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
mbed_official 511:532f83b66a7f 96 {PA_5, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
mbed_official 511:532f83b66a7f 97 {PA_6, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
mbed_official 511:532f83b66a7f 98 {PA_7, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - ARDUINO
mbed_official 511:532f83b66a7f 99 // {PA_7, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - ARDUINO
mbed_official 511:532f83b66a7f 100 {PA_8, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
mbed_official 511:532f83b66a7f 101 {PA_9, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
mbed_official 511:532f83b66a7f 102 {PA_10, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
mbed_official 511:532f83b66a7f 103 {PA_11, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
mbed_official 511:532f83b66a7f 104 {PA_15, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
mbed_official 464:04583941e294 105
mbed_official 511:532f83b66a7f 106 {PB_0, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
mbed_official 511:532f83b66a7f 107 // {PB_0, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
mbed_official 511:532f83b66a7f 108 {PB_1, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
mbed_official 511:532f83b66a7f 109 // {PB_1, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
mbed_official 511:532f83b66a7f 110 {PB_3, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 - ARDUINO
mbed_official 511:532f83b66a7f 111 {PB_4, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - ARDUINO
mbed_official 511:532f83b66a7f 112 {PB_5, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
mbed_official 511:532f83b66a7f 113 {PB_6, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 - ARDUINO
mbed_official 511:532f83b66a7f 114 {PB_7, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
mbed_official 511:532f83b66a7f 115 {PB_8, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
mbed_official 511:532f83b66a7f 116 // {PB_8, PWM_10,STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10,1, 0)}, // TIM10_CH1
mbed_official 511:532f83b66a7f 117 {PB_9, PWM_4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
mbed_official 511:532f83b66a7f 118 // {PB_9, PWM_11,STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11,1, 0)}, // TIM11_CH1
mbed_official 511:532f83b66a7f 119 {PB_10, PWM_2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - ARDUINO
mbed_official 511:532f83b66a7f 120 {PB_13, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
mbed_official 511:532f83b66a7f 121 {PB_14, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
mbed_official 511:532f83b66a7f 122 {PB_15, PWM_1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
mbed_official 464:04583941e294 123
mbed_official 511:532f83b66a7f 124 {PC_6, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
mbed_official 511:532f83b66a7f 125 {PC_7, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - ARDUINO
mbed_official 511:532f83b66a7f 126 {PC_8, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
mbed_official 511:532f83b66a7f 127 {PC_9, PWM_3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
mbed_official 464:04583941e294 128 {NC, NC, 0}
mbed_official 464:04583941e294 129 };
mbed_official 464:04583941e294 130
mbed_official 464:04583941e294 131 //*** SERIAL ***
mbed_official 464:04583941e294 132
mbed_official 464:04583941e294 133 const PinMap PinMap_UART_TX[] = {
mbed_official 464:04583941e294 134 {PA_9, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
mbed_official 464:04583941e294 135 {PD_8, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
mbed_official 478:9f3d4ee935ce 136 {PF_7, UART_7, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)},
mbed_official 464:04583941e294 137 {NC, NC, 0}
mbed_official 464:04583941e294 138 };
mbed_official 464:04583941e294 139
mbed_official 464:04583941e294 140 const PinMap PinMap_UART_RX[] = {
mbed_official 464:04583941e294 141 {PA_10, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
mbed_official 464:04583941e294 142 {PD_9, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
mbed_official 478:9f3d4ee935ce 143 {PF_6, UART_7, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART7)},
mbed_official 464:04583941e294 144 {NC, NC, 0}
mbed_official 464:04583941e294 145 };
mbed_official 464:04583941e294 146
mbed_official 464:04583941e294 147 //*** SPI ***
mbed_official 464:04583941e294 148
mbed_official 464:04583941e294 149 const PinMap PinMap_SPI_MOSI[] = {
mbed_official 464:04583941e294 150 {PE_14, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI4)},
mbed_official 464:04583941e294 151 {NC, NC, 0}
mbed_official 464:04583941e294 152 };
mbed_official 464:04583941e294 153
mbed_official 464:04583941e294 154 const PinMap PinMap_SPI_MISO[] = {
mbed_official 464:04583941e294 155 {PE_13, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI4)},
mbed_official 464:04583941e294 156 {NC, NC, 0}
mbed_official 464:04583941e294 157 };
mbed_official 464:04583941e294 158
mbed_official 464:04583941e294 159 const PinMap PinMap_SPI_SCLK[] = {
mbed_official 464:04583941e294 160 {PE_12, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI4)},
mbed_official 464:04583941e294 161 {NC, NC, 0}
mbed_official 464:04583941e294 162 };
mbed_official 464:04583941e294 163
mbed_official 464:04583941e294 164 const PinMap PinMap_SPI_SSEL[] = {
mbed_official 464:04583941e294 165 {PE_11, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
mbed_official 464:04583941e294 166 {NC, NC, 0}
mbed_official 464:04583941e294 167 };