Skip to content

Commit 1c0a406

Browse files
authored
add CH32V208WB
1 parent 4fb8a3f commit 1c0a406

File tree

6 files changed

+568
-0
lines changed

6 files changed

+568
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# v3.21 implemented semantic changes regarding $<TARGET_OBJECTS:...>
2+
# See https://cmake.org/cmake/help/v3.21/command/target_link_libraries.html#linking-object-libraries-via-target-objects
3+
cmake_minimum_required(VERSION 3.21)
4+
5+
add_library(variant INTERFACE)
6+
add_library(variant_usage INTERFACE)
7+
8+
target_include_directories(variant_usage INTERFACE
9+
.
10+
)
11+
12+
13+
target_link_libraries(variant_usage INTERFACE
14+
base_config
15+
)
16+
17+
target_link_libraries(variant INTERFACE variant_usage)
18+
19+
20+
21+
add_library(variant_bin STATIC EXCLUDE_FROM_ALL
22+
PeripheralPins.c
23+
variant_CH32V208WB.cpp
24+
)
25+
target_link_libraries(variant_bin PUBLIC variant_usage)
26+
27+
target_link_libraries(variant INTERFACE
28+
variant_bin
29+
)
30+
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
/**
2+
*******************************************************************************
3+
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by WCH under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
13+
14+
#include "Arduino.h"
15+
#include "PeripheralPins.h"
16+
17+
/* =====
18+
* Notes:
19+
* - The pins mentioned Px_y_ALTz are alternative possibilities which use other
20+
* HW peripheral instances. You can use them the same way as any other "normal"
21+
* pin (i.e. analogWrite(PA7_ALT1, 128);).
22+
*
23+
* - Commented lines are alternative possibilities which are not used per default.
24+
* If you change them, you will have to know what you do
25+
* =====
26+
*/
27+
28+
//*** ADC ***
29+
#ifdef ADC_MODULE_ENABLED
30+
WEAK const PinMap PinMap_ADC[] = {
31+
{PA_0, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 0)}, // ADC1_IN0
32+
{PA_0_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 0)}, // ADC2_IN0
33+
{PA_1, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 1)}, // ADC1_IN1
34+
{PA_1_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 1)}, // ADC2_IN1
35+
{PA_2, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 2)}, // ADC1_IN2
36+
{PA_2_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 2)}, // ADC2_IN2
37+
{PA_3, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 3)}, // ADC1_IN3
38+
{PA_3_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 3)}, // ADC2_IN3
39+
{PA_4, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 4)}, // ADC1_IN4
40+
{PA_4_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 4)}, // ADC2_IN4
41+
{PA_5, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 5)}, // ADC1_IN5
42+
{PA_5_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 5)}, // ADC2_IN5
43+
{PA_6, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 6)}, // ADC1_IN6
44+
{PA_6_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 6)}, // ADC2_IN6
45+
{PA_7, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 7)}, // ADC1_IN7
46+
{PA_7_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 7)}, // ADC2_IN7
47+
{PB_0, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 8)}, // ADC1_IN8
48+
{PB_0_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 8)}, // ADC2_IN8
49+
{PB_1, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 9)}, // ADC1_IN9
50+
{PB_1_ALT1, ADC2, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 9)}, // ADC2_IN9
51+
{NC, NP, 0}
52+
};
53+
#endif
54+
55+
//*** No DAC ***
56+
57+
58+
59+
//*** I2C ***
60+
#ifdef I2C_MODULE_ENABLED
61+
WEAK const PinMap PinMap_I2C_SDA[] = {
62+
{PB_7, I2C1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_NONE)},
63+
{PB_9, I2C1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_Remap_I2C1_ENABLE)},
64+
{NC, NP, 0}
65+
};
66+
#endif
67+
68+
#ifdef I2C_MODULE_ENABLED
69+
WEAK const PinMap PinMap_I2C_SCL[] = {
70+
{PB_6, I2C1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_NONE)},
71+
{PB_8, I2C1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_Remap_I2C1_ENABLE)},
72+
{NC, NP, 0}
73+
};
74+
#endif
75+
76+
//*** TIM ***
77+
#ifdef TIM_MODULE_ENABLED
78+
WEAK const PinMap PinMap_TIM[] = {
79+
{PA_0, TIM2, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM2_DISABLE, 1)}, // TIM2_CH1
80+
{PA_1, TIM2, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM2_DISABLE, 2)}, // TIM2_CH2
81+
{PA_2, TIM2, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM2_DISABLE, 3)}, // TIM2_CH3
82+
{PA_3, TIM2, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM2_DISABLE, 4)}, // TIM2_CH4
83+
84+
{PA_6, TIM3, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM3_DISABLE, 1)}, // TIM3_CH1
85+
{PA_7, TIM3, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM3_DISABLE, 2)}, // TIM3_CH2
86+
{PB_0, TIM3, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM3_DISABLE, 3)}, // TIM3_CH3
87+
{PB_1, TIM3, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM3_DISABLE, 4)}, // TIM3_CH4
88+
89+
{PB_6, TIM4, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM4_DISABLE, 1)}, // TIM4_CH1
90+
{PB_7, TIM4, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM4_DISABLE, 2)}, // TIM4_CH2
91+
{PB_8, TIM4, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM4_DISABLE, 3)}, // TIM4_CH3
92+
{PB_9, TIM4, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM4_DISABLE, 4)}, // TIM4_CH4
93+
94+
{PA_8, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 1)}, // TIM1_CH1
95+
{PA_9, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 2)}, // TIM1_CH2
96+
{PA_10, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 3)}, // TIM1_CH3
97+
{PA_11, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 4)}, // TIM1_CH4
98+
99+
{PB_13, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 1)}, // TIM1_CH1N
100+
{PB_14, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 2)}, // TIM1_CH2N
101+
{PA_15, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 3)}, // TIM1_CH3N
102+
{NC, NP, 0}
103+
};
104+
#endif
105+
106+
//*** UART ***
107+
#ifdef UART_MODULE_ENABLED
108+
WEAK const PinMap PinMap_UART_TX[] = {
109+
{PA_9, USART1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
110+
{PB_6, USART1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_Remap_USART1_ENABLE)},
111+
{PA_2, USART2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
112+
{PB_10,USART3, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
113+
{PC_10,USART3, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_FullRemap_USART3_ENABLE)},
114+
{PB_0, UART4, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
115+
{PA_5, UART4, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_FullRemap_USART4_ENABLE)},
116+
{NC, NP, 0}
117+
};
118+
#endif
119+
120+
#ifdef UART_MODULE_ENABLED
121+
WEAK const PinMap PinMap_UART_RX[] = {
122+
{PA_10, USART1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
123+
{PB_7, USART1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_Remap_USART1_ENABLE)},
124+
{PA_3, USART2, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
125+
{PB_11, USART3, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
126+
{PC_11, USART3, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_FullRemap_USART3_ENABLE)},
127+
{PB_1, UART4, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
128+
{PB_5, UART4, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_FullRemap_USART4_ENABLE)},
129+
{NC, NP, 0}
130+
};
131+
#endif
132+
133+
#ifdef UART_MODULE_ENABLED
134+
WEAK const PinMap PinMap_UART_RTS[] = {
135+
{PA_12, USART1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
136+
{PA_1, USART2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
137+
{PB_14, USART3, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
138+
{PB_4, UART4, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
139+
{NC, NP, 0}
140+
};
141+
#endif
142+
143+
#ifdef UART_MODULE_ENABLED
144+
WEAK const PinMap PinMap_UART_CTS[] = {
145+
{PA_11, USART1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
146+
{PA_0, USART2, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
147+
{PB_13, USART3, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
148+
{PB_3, UART4, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
149+
{NC, NP, 0}
150+
};
151+
#endif
152+
153+
154+
//*** SPI ***
155+
#ifdef SPI_MODULE_ENABLED
156+
WEAK const PinMap PinMap_SPI_MOSI[] = {
157+
{PA_7, SPI1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
158+
{NC, NP, 0}
159+
};
160+
#endif
161+
162+
#ifdef SPI_MODULE_ENABLED
163+
WEAK const PinMap PinMap_SPI_MISO[] = {
164+
{PA_6, SPI1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_FLOAT, 0, AFIO_NONE)},
165+
{NC, NP, 0}
166+
};
167+
#endif
168+
169+
#ifdef SPI_MODULE_ENABLED
170+
WEAK const PinMap PinMap_SPI_SCLK[] = {
171+
{PA_5, SPI1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
172+
{NC, NP, 0}
173+
};
174+
#endif
175+
176+
#ifdef SPI_MODULE_ENABLED
177+
WEAK const PinMap PinMap_SPI_SSEL[] = {
178+
{PA_4, SPI1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
179+
{NC, NP, 0}
180+
};
181+
#endif
182+
183+
//*** CAN ***
184+
#ifdef CAN_MODULE_ENABLED
185+
WEAK const PinMap PinMap_CAN_RD[] = {
186+
{PA_11, CAN1, CH_PIN_DATA(CH_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)},
187+
{PB_8, CAN1, CH_PIN_DATA(CH_MODE_INPUT, GPIO_NOPULL, AFIO_CAN1_2)},
188+
{NC, NP, 0}
189+
};
190+
#endif
191+
192+
#ifdef CAN_MODULE_ENABLED
193+
WEAK const PinMap PinMap_CAN_TD[] = {
194+
{PA_12, CAN1, CH_PIN_DATA(CH_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)},
195+
{PB_9, CAN1, CH_PIN_DATA(CH_MODE_AF_PP, GPIO_NOPULL, AFIO_CAN1_2)},
196+
{NC, NP, 0}
197+
};
198+
#endif
199+
200+
//*** No ETHERNET ***
201+
202+
203+
204+
//*** USB ***
205+
#ifdef USB_MODULE_ENABLED
206+
WEAK const PinMap PinMap_USB[] = {
207+
{PA_11, USB, CH_PIN_DATA(CH_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DM
208+
{PA_12, USB, CH_PIN_DATA(CH_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DP
209+
{NC, NP, 0}
210+
};
211+
#endif
212+
213+
//*** No SD ***
214+
215+
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/* Alternate pin name */
2+
PA_0_ALT1 = PA_0 | ALT1,
3+
PA_1_ALT1 = PA_1 | ALT1,
4+
PA_2_ALT1 = PA_2 | ALT1,
5+
PA_3_ALT1 = PA_3 | ALT1,
6+
PA_4_ALT1 = PA_4 | ALT1,
7+
PA_5_ALT1 = PA_5 | ALT1,
8+
PA_6_ALT1 = PA_6 | ALT1,
9+
PA_7_ALT1 = PA_7 | ALT1,
10+
PA_8_ALT1 = PA_8 | ALT1,
11+
PA_9_ALT1 = PA_9 | ALT1,
12+
PA_10_ALT1 = PA_10 | ALT1,
13+
PA_11_ALT1 = PA_11 | ALT1,
14+
PA_15_ALT1 = PA_15 | ALT1,
15+
PB_0_ALT1 = PB_0 | ALT1,
16+
PB_0_ALT2 = PB_0 | ALT2,
17+
PB_1_ALT1 = PB_1 | ALT1,
18+
PB_1_ALT2 = PB_1 | ALT2,
19+
PB_3_ALT1 = PB_3 | ALT1,
20+
PB_10_ALT1 = PB_10 | ALT1,
21+
PB_11_ALT1 = PB_11 | ALT1,
22+
23+
/* SYS_WKUP */
24+
#ifdef PWR_WAKEUP_PIN1
25+
SYS_WKUP1 = PA_0,
26+
#endif
27+
#ifdef PWR_WAKEUP_PIN2
28+
SYS_WKUP2 = NC,
29+
#endif
30+
#ifdef PWR_WAKEUP_PIN3
31+
SYS_WKUP3 = NC,
32+
#endif
33+
#ifdef PWR_WAKEUP_PIN4
34+
SYS_WKUP4 = NC,
35+
#endif
36+
#ifdef PWR_WAKEUP_PIN5
37+
SYS_WKUP5 = NC,
38+
#endif
39+
#ifdef PWR_WAKEUP_PIN6
40+
SYS_WKUP6 = NC,
41+
#endif
42+
#ifdef PWR_WAKEUP_PIN7
43+
SYS_WKUP7 = NC,
44+
#endif
45+
#ifdef PWR_WAKEUP_PIN8
46+
SYS_WKUP8 = NC,
47+
#endif
48+
49+
/* USB */
50+
#ifdef USBCON
51+
USB_DM = PA_11,
52+
USB_DP = PA_12,
53+
#endif
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# This file help to add generic board entry.
2+
3+
4+
5+
# CH32V208WB
6+
CH32V20x_EVT.menu.pnum.CH32V208WB=CH32V208WB EVT
7+
CH32V20x_EVT.menu.pnum.CH32V208WB.upload.maximum_size=131072
8+
CH32V20x_EVT.menu.pnum.CH32V208WB.upload.maximum_data_size=65536
9+
CH32V20x_EVT.menu.pnum.CH32V208WB.build.board=CH32V208WB
10+
CH32V20x_EVT.menu.pnum.CH32V208WB.build.product_line=CH32V20xB
11+
CH32V20x_EVT.menu.pnum.CH32V208WB.build.variant=CH32V20x/CH32V208WB
12+
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/**
2+
*******************************************************************************
3+
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by WCH under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
13+
14+
#include "pins_arduino.h"
15+
16+
17+
18+
19+
// Digital PinName array
20+
const PinName digitalPin[] = {
21+
PA_0, // D0/A0
22+
PA_1, // D1/A1
23+
PA_2, // D2/A2
24+
PA_3, // D3/A3
25+
PA_4, // D4/A4
26+
PA_5, // D5/A5
27+
PA_6, // D6/A6
28+
PA_7, // D7/A7
29+
PA_8, // D8
30+
PA_9, // D9
31+
PA_10, // D10
32+
PA_11, // D11
33+
PA_12, // D12
34+
PA_13, // D13
35+
PA_14, // D14
36+
PA_15, // D15
37+
PB_0, // D16/A8
38+
PB_1, // D17/A9
39+
PB_2, // D18
40+
PB_3, // D19
41+
PB_4, // D20
42+
PB_5, // D21
43+
PB_6, // D22
44+
PB_7, // D23
45+
PB_8, // D24
46+
PB_9, // D25
47+
PB_10, // D26
48+
PB_11, // D27
49+
PB_12, // D28
50+
PB_13, // D29
51+
PB_14, // D30
52+
PB_15, // D31
53+
PC_13, // D32
54+
PC_14, // D33
55+
PC_15, // D34
56+
PD_0, // D35
57+
PD_1 // D36
58+
};
59+
60+
// Analog (Ax) pin number array
61+
const uint32_t analogInputPin[] = {
62+
0, // A0, PA0
63+
1, // A1, PA1
64+
2, // A2, PA2
65+
3, // A3, PA3
66+
4, // A4, PA4
67+
5, // A5, PA5
68+
6, // A6, PA6
69+
7, // A7, PA7
70+
16, // A8, PB0
71+
17 // A9, PB1
72+
};
73+
74+
75+

0 commit comments

Comments
 (0)