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
+ const PinMap PinMap_ADC [] = {
42
+ {PA0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 0 , 0 )}, // ADC1_IN0
43
+ {PA1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 1 , 0 )}, // ADC1_IN1
44
+ {PA2 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 2 , 0 )}, // ADC1_IN2
45
+ {PA3 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 3 , 0 )}, // ADC1_IN3
46
+ {PA4 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 4 , 0 )}, // ADC1_IN4
47
+ {PA5 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 5 , 0 )}, // ADC1_IN5
48
+ {PA6 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 6 , 0 )}, // ADC1_IN6
49
+ {PA7 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 7 , 0 )}, // ADC1_IN7
50
+ {PB0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 8 , 0 )}, // ADC1_IN8
51
+ {PB1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 9 , 0 )}, // ADC1_IN9
52
+ {PC0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 10 , 0 )}, // ADC1_IN10
53
+ {PC1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 11 , 0 )}, // ADC1_IN11
54
+ {PC2 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 12 , 0 )}, // ADC1_IN12
55
+ {PC3 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 13 , 0 )}, // ADC1_IN13
56
+ {PC4 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 14 , 0 )}, // ADC1_IN14
57
+ {PC5 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 15 , 0 )}, // ADC1_IN15
58
+ {NC , NP , 0 }
59
+ };
60
+
61
+ //*** DAC ***
62
+
63
+ const PinMap PinMap_DAC [] = {
64
+ {PA4 , DAC , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 1 , 0 )}, // DAC_OUT1
65
+ {PA5 , DAC , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 2 , 0 )}, // DAC_OUT2
66
+ {NC , NP , 0 }
67
+ };
68
+
69
+ //*** I2C ***
70
+
71
+ const PinMap PinMap_I2C_SDA [] = {
72
+ {PB7 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
73
+ {PB9 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 2 )}, // GPIO_Remap_I2C1
74
+ {PB11 , I2C2 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
75
+ {NC , NP , 0 }
76
+ };
77
+
78
+ const PinMap PinMap_I2C_SCL [] = {
79
+ {PB6 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
80
+ {PB8 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 2 )}, // GPIO_Remap_I2C1
81
+ {PB10 , I2C2 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
82
+ {NC , NP , 0 }
83
+ };
84
+
85
+ //*** PWM ***
86
+
87
+ const PinMap PinMap_PWM [] = {
88
+ {PA0 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM2_CH1
89
+ {PA1 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM2_CH2
90
+ // {PA2, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM15_CH1
91
+ {PA2 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM2_CH3
92
+ // {PA3, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM15_CH2
93
+ {PA3 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM2_CH4
94
+ // {PA6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM16_CH1
95
+ {PA6 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM3_CH1
96
+ // {PA7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM17_CH1
97
+ // {PA7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 1, 1)}, // TIM1_CH1N - GPIO_PartialRemap_TIM1
98
+ {PA7 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM3_CH2
99
+ {PA8 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM1_CH1
100
+ {PA9 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM1_CH2
101
+ {PA10 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM1_CH3
102
+ {PA11 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM1_CH4
103
+ {PA15 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 1 , 0 )}, // TIM2_CH1 - GPIO_FullRemap_TIM2
104
+ // {PB0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 2, 1)}, // TIM1_CH2N - GPIO_PartialRemap_TIM1
105
+ {PB0 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM3_CH3
106
+ // {PB1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 3, 1)}, // TIM1_CH3N - GPIO_PartialRemap_TIM1
107
+ {PB1 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM3_CH4
108
+ {PB3 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 2 , 0 )}, // TIM2_CH2 - GPIO_FullRemap_TIM2
109
+ {PB4 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 7 , 1 , 0 )}, // TIM3_CH1 - GPIO_PartialRemap_TIM3
110
+ {PB5 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 7 , 2 , 0 )}, // TIM3_CH2 - GPIO_PartialRemap_TIM3
111
+ // {PB6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM16_CH1N
112
+ {PB6 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM4_CH1
113
+ // {PB7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM17_CH1N
114
+ {PB7 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM4_CH2
115
+ // {PB8, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM16_CH1
116
+ {PB8 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM4_CH3
117
+ // {PB9, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM17_CH1
118
+ {PB9 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM4_CH4
119
+ {PB10 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 3 , 0 )}, // TIM2_CH3 - GPIO_FullRemap_TIM2
120
+ {PB11 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 4 , 0 )}, // TIM2_CH4 - GPIO_FullRemap_TIM2
121
+ {PB13 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 1 )}, // TIM1_CH1N
122
+ // {PB14, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM15_CH1
123
+ {PB14 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 1 )}, // TIM1_CH2N
124
+ // {PB15, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM15_CH1N
125
+ // {PB15, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM15_CH2
126
+ {PB15 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 1 )}, // TIM1_CH3N
127
+ {PC6 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 1 , 0 )}, // TIM3_CH1 - GPIO_FullRemap_TIM3
128
+ {PC7 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 2 , 0 )}, // TIM3_CH2 - GPIO_FullRemap_TIM3
129
+ {PC8 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 3 , 0 )}, // TIM3_CH3 - GPIO_FullRemap_TIM3
130
+ {PC9 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 4 , 0 )}, // TIM3_CH4 - GPIO_FullRemap_TIM3
131
+ {NC , NP , 0 }
132
+ };
133
+
134
+ //*** SERIAL ***
135
+
136
+ const PinMap PinMap_UART_TX [] = {
137
+ {PA2 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
138
+ {PA9 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
139
+ {PB6 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 3 )}, // GPIO_Remap_USART1
140
+ {PB10 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
141
+ {PC10 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 5 )}, // GPIO_PartialRemap_USART3
142
+ {NC , NP , 0 }
143
+ };
144
+
145
+ const PinMap PinMap_UART_RX [] = {
146
+ {PA3 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
147
+ {PA10 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
148
+ {PB7 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 3 )}, // GPIO_Remap_USART1
149
+ {PB11 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
150
+ {PC11 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 5 )}, // GPIO_PartialRemap_USART3
151
+ {NC , NP , 0 }
152
+ };
153
+
154
+ const PinMap PinMap_UART_RTS [] = {
155
+ {PA1 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
156
+ {PA12 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
157
+ {PB14 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
158
+ {NC , NP , 0 }
159
+ };
160
+
161
+ const PinMap PinMap_UART_CTS [] = {
162
+ {PA0 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
163
+ {PA11 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
164
+ {PB13 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
165
+ {NC , NP , 0 }
166
+ };
167
+
168
+ //*** SPI ***
169
+
170
+ const PinMap PinMap_SPI_MOSI [] = {
171
+ {PA7 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
172
+ {PB5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
173
+ {PB15 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
174
+ {NC , NP , 0 }
175
+ };
176
+
177
+ const PinMap PinMap_SPI_MISO [] = {
178
+ {PA6 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
179
+ {PB4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
180
+ {PB14 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
181
+ {NC , NP , 0 }
182
+ };
183
+
184
+ const PinMap PinMap_SPI_SCLK [] = {
185
+ {PA5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
186
+ {PB3 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
187
+ {PB13 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
188
+ {NC , NP , 0 }
189
+ };
190
+
191
+ const PinMap PinMap_SPI_SSEL [] = {
192
+ {PA4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
193
+ {PA15 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
194
+ {PB12 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
195
+ {NC , NP , 0 }
196
+ };
197
+
198
+ //*** No CAN ***
0 commit comments