Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e09a477

Browse files
committedFeb 11, 2019
[Nucleo L452RE] Add support
Fix #425 Signed-off-by: Frederic Pillon <[email protected]>
1 parent 830bb00 commit e09a477

File tree

7 files changed

+1354
-0
lines changed

7 files changed

+1354
-0
lines changed
 

‎boards.txt

+13
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.product_line=STM32L073xx
269269
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.variant=NUCLEO_L073RZ
270270
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.cmsis_lib_gcc=arm_cortexM0l_math
271271
Nucleo_64.menu.pnum.NUCLEO_L073RZ.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
272+
272273
# NUCLEO_L152RE board
273274
# Support: Serial1 (USART1 on PA10, PA9) and Serial2 (UART4 on PC11, PC10)
274275
Nucleo_64.menu.pnum.NUCLEO_L152RE=Nucleo L152RE
@@ -282,6 +283,18 @@ Nucleo_64.menu.pnum.NUCLEO_L152RE.build.product_line=STM32L152xE
282283
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.variant=NUCLEO_L152RE
283284
Nucleo_64.menu.pnum.NUCLEO_L152RE.build.cmsis_lib_gcc=arm_cortexM3l_math
284285

286+
# NUCLEO_L452RE board
287+
Nucleo_64.menu.pnum.NUCLEO_L452RE=Nucleo L452RE
288+
Nucleo_64.menu.pnum.NUCLEO_L452RE.node=NODE_L452RE
289+
Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_size=524288
290+
Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_data_size=163840
291+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.mcu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
292+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.board=NUCLEO_L452RE
293+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.series=STM32L4xx
294+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.product_line=STM32L452xx
295+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.variant=NUCLEO_L452RE
296+
Nucleo_64.menu.pnum.NUCLEO_L452RE.build.cmsis_lib_gcc=arm_cortexM4l_math
297+
285298
# NUCLEO_L476RG board
286299
# Support: Serial1 (USART1 on PA10, PA9)
287300
Nucleo_64.menu.pnum.NUCLEO_L476RG=Nucleo L476RG

‎variants/NUCLEO_L452RE/PeripheralPins.c

+325
Large diffs are not rendered by default.

‎variants/NUCLEO_L452RE/PinNamesVar.h

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0,
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = PC_13,
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = PE_6, /* manually updated */
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = PA_2,
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = PC_5, /* manually updated */
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = NC,
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif
26+
/* USB */
27+
#ifdef USBCON
28+
USB_DM = PA_11,
29+
USB_DP = PA_12,
30+
USB_NOE = PA_13,
31+
/* USB_NOE = PC_9, */
32+
#endif

‎variants/NUCLEO_L452RE/ldscript.ld

+187
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
/*
2+
*****************************************************************************
3+
**
4+
5+
** File : ldscript.ld
6+
**
7+
** Abstract : Linker script for STM32L452RE Device with
8+
** 512KByte FLASH, 160KByte RAM
9+
**
10+
** Set heap size, stack size and stack location according
11+
** to application requirements.
12+
**
13+
** Set memory bank area and size if external memory is used.
14+
**
15+
** Target : STMicroelectronics STM32
16+
**
17+
** Distribution: The file is distributed as is, without any warranty
18+
** of any kind.
19+
**
20+
*****************************************************************************
21+
** @attention
22+
**
23+
** <h2><center>&copy; COPYRIGHT(c) 2014 Ac6</center></h2>
24+
**
25+
** Redistribution and use in source and binary forms, with or without modification,
26+
** are permitted provided that the following conditions are met:
27+
** 1. Redistributions of source code must retain the above copyright notice,
28+
** this list of conditions and the following disclaimer.
29+
** 2. Redistributions in binary form must reproduce the above copyright notice,
30+
** this list of conditions and the following disclaimer in the documentation
31+
** and/or other materials provided with the distribution.
32+
** 3. Neither the name of Ac6 nor the names of its contributors
33+
** may be used to endorse or promote products derived from this software
34+
** without specific prior written permission.
35+
**
36+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
37+
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38+
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39+
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
40+
** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
41+
** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
42+
** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
43+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44+
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
45+
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
46+
**
47+
*****************************************************************************
48+
*/
49+
50+
/* Entry Point */
51+
ENTRY(Reset_Handler)
52+
53+
/* Highest address of the user mode stack */
54+
_estack = 0x20028000; /* end of RAM */
55+
/* Generate a link error if heap and stack don't fit into RAM */
56+
_Min_Heap_Size = 0x200; /* required amount of heap */
57+
_Min_Stack_Size = 0x400; /* required amount of stack */
58+
59+
/* Specify the memory areas */
60+
MEMORY
61+
{
62+
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 160K
63+
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K
64+
}
65+
66+
/* Define output sections */
67+
SECTIONS
68+
{
69+
/* The startup code goes first into FLASH */
70+
.isr_vector :
71+
{
72+
. = ALIGN(4);
73+
KEEP(*(.isr_vector)) /* Startup code */
74+
. = ALIGN(4);
75+
} >FLASH
76+
77+
/* The program code and other data goes into FLASH */
78+
.text :
79+
{
80+
. = ALIGN(4);
81+
*(.text) /* .text sections (code) */
82+
*(.text*) /* .text* sections (code) */
83+
*(.glue_7) /* glue arm to thumb code */
84+
*(.glue_7t) /* glue thumb to arm code */
85+
*(.eh_frame)
86+
87+
KEEP (*(.init))
88+
KEEP (*(.fini))
89+
90+
. = ALIGN(4);
91+
_etext = .; /* define a global symbols at end of code */
92+
} >FLASH
93+
94+
/* Constant data goes into FLASH */
95+
.rodata :
96+
{
97+
. = ALIGN(4);
98+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
99+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
100+
. = ALIGN(4);
101+
} >FLASH
102+
103+
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
104+
.ARM : {
105+
__exidx_start = .;
106+
*(.ARM.exidx*)
107+
__exidx_end = .;
108+
} >FLASH
109+
110+
.preinit_array :
111+
{
112+
PROVIDE_HIDDEN (__preinit_array_start = .);
113+
KEEP (*(.preinit_array*))
114+
PROVIDE_HIDDEN (__preinit_array_end = .);
115+
} >FLASH
116+
.init_array :
117+
{
118+
PROVIDE_HIDDEN (__init_array_start = .);
119+
KEEP (*(SORT(.init_array.*)))
120+
KEEP (*(.init_array*))
121+
PROVIDE_HIDDEN (__init_array_end = .);
122+
} >FLASH
123+
.fini_array :
124+
{
125+
PROVIDE_HIDDEN (__fini_array_start = .);
126+
KEEP (*(SORT(.fini_array.*)))
127+
KEEP (*(.fini_array*))
128+
PROVIDE_HIDDEN (__fini_array_end = .);
129+
} >FLASH
130+
131+
/* used by the startup to initialize data */
132+
_sidata = LOADADDR(.data);
133+
134+
/* Initialized data sections goes into RAM, load LMA copy after code */
135+
.data :
136+
{
137+
. = ALIGN(4);
138+
_sdata = .; /* create a global symbol at data start */
139+
*(.data) /* .data sections */
140+
*(.data*) /* .data* sections */
141+
142+
. = ALIGN(4);
143+
_edata = .; /* define a global symbol at data end */
144+
} >RAM AT> FLASH
145+
146+
147+
/* Uninitialized data section */
148+
. = ALIGN(4);
149+
.bss :
150+
{
151+
/* This is used by the startup in order to initialize the .bss secion */
152+
_sbss = .; /* define a global symbol at bss start */
153+
__bss_start__ = _sbss;
154+
*(.bss)
155+
*(.bss*)
156+
*(COMMON)
157+
158+
. = ALIGN(4);
159+
_ebss = .; /* define a global symbol at bss end */
160+
__bss_end__ = _ebss;
161+
} >RAM
162+
163+
/* User_heap_stack section, used to check that there is enough RAM left */
164+
._user_heap_stack :
165+
{
166+
. = ALIGN(4);
167+
PROVIDE ( end = . );
168+
PROVIDE ( _end = . );
169+
. = . + _Min_Heap_Size;
170+
. = . + _Min_Stack_Size;
171+
. = ALIGN(4);
172+
} >RAM
173+
174+
175+
176+
/* Remove information from the standard libraries */
177+
/DISCARD/ :
178+
{
179+
libc.a ( * )
180+
libm.a ( * )
181+
libgcc.a ( * )
182+
}
183+
184+
.ARM.attributes 0 : { *(.ARM.attributes) }
185+
}
186+
187+

‎variants/NUCLEO_L452RE/stm32l4xx_hal_conf.h

+473
Large diffs are not rendered by default.

‎variants/NUCLEO_L452RE/variant.cpp

+175
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/*
2+
Copyright (c) 2011 Arduino. All right reserved.
3+
4+
This library is free software; you can redistribute it and/or
5+
modify it under the terms of the GNU Lesser General Public
6+
License as published by the Free Software Foundation; either
7+
version 2.1 of the License, or (at your option) any later version.
8+
9+
This library is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
See the GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public
15+
License along with this library; if not, write to the Free Software
16+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
#include "variant.h"
20+
21+
#ifdef __cplusplus
22+
extern "C" {
23+
#endif
24+
25+
// Pin number
26+
const PinName digitalPin[] = {
27+
PA_3, //D0
28+
PA_2, //D1
29+
PA_10, //D2
30+
PB_3, //D3
31+
PB_5, //D4
32+
PB_4, //D5
33+
PB_10, //D6
34+
PA_8, //D7
35+
PA_9, //D8
36+
PC_7, //D9
37+
PB_6, //D10
38+
PA_7, //D11
39+
PA_6, //D12
40+
PA_5, //D13 - LED
41+
PB_9, //D14
42+
PB_8, //D15
43+
// ST Morpho
44+
// CN7 Left Side
45+
PC_10, //D16
46+
PC_12, //D17
47+
NC, //D18 - BOOT0
48+
PA_13, //D19 - SWD
49+
PA_14, //D20 - SWD
50+
PA_15, //D21
51+
PB_7, //D22
52+
PC_13, //D23
53+
PC_14, //D24
54+
PC_15, //D25
55+
PH_0, //D26
56+
PH_1, //D27
57+
PC_2, //D28
58+
PC_3, //D29
59+
// CN7 Right Side
60+
PC_11, //D30
61+
PD_2, //D31
62+
// CN10 Left Side
63+
PC_9, //D32
64+
// CN10 Right side
65+
PC_8, //D33
66+
PC_6, //D34
67+
PC_5, //D35
68+
PA_12, //D36
69+
PA_11, //D37
70+
PB_12, //D38
71+
PB_11, //D39
72+
PB_2, //D40
73+
PB_1, //D41
74+
PB_15, //D42
75+
PB_14, //D43
76+
PB_13, //D44
77+
PC_4, //D45
78+
PA_0, //D46/A0
79+
PA_1, //D47/A1
80+
PA_4, //D48/A2
81+
PB_0, //D49/A3
82+
PC_1, //D50/A4
83+
PC_0, //D51/A5
84+
// Duplicated pins in order to be aligned with PinMap_ADC
85+
PA_7, //D52/A6 = D11
86+
PA_6, //D53/A7 = D12
87+
PC_2, //D54/A8 = D28
88+
PC_3, //D55/A9 = D29
89+
PC_4 //D57/A10 = D45
90+
};
91+
92+
#ifdef __cplusplus
93+
}
94+
#endif
95+
96+
// ----------------------------------------------------------------------------
97+
98+
#ifdef __cplusplus
99+
extern "C" {
100+
#endif
101+
102+
/**
103+
* @brief System Clock Configuration
104+
* The system Clock is configured as follows :
105+
* System Clock source = PLL (MSI)
106+
* SYSCLK(Hz) = 80000000
107+
* HCLK(Hz) = 80000000
108+
* AHB Prescaler = 1
109+
* APB1 Prescaler = 1
110+
* APB2 Prescaler = 1
111+
* MSI Frequency(Hz) = 4000000
112+
* PLL_M = 1
113+
* PLL_N = 40
114+
* PLL_R = 2
115+
* PLL_P = 7
116+
* PLL_Q = 2
117+
* Flash Latency(WS) = 4
118+
* @param None
119+
* @retval None
120+
*/
121+
WEAK void SystemClock_Config(void)
122+
{
123+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
124+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
125+
126+
/* Configure LSE Drive Capability */
127+
HAL_PWR_EnableBkUpAccess();
128+
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
129+
/* Initializes the CPU, AHB and APB busses clocks */
130+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI;
131+
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
132+
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
133+
RCC_OscInitStruct.MSICalibrationValue = 0;
134+
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;
135+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
136+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;
137+
RCC_OscInitStruct.PLL.PLLM = 1;
138+
RCC_OscInitStruct.PLL.PLLN = 40;
139+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
140+
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
141+
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
142+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
143+
Error_Handler();
144+
}
145+
/* Initializes the CPU, AHB and APB busses clocks */
146+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
147+
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
148+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
149+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
150+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
151+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
152+
153+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) {
154+
Error_Handler();
155+
}
156+
/* Configure the main internal regulator output voltage */
157+
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) {
158+
Error_Handler();
159+
}
160+
/* Enable MSI Auto calibration */
161+
HAL_RCCEx_EnableMSIPLLMode();
162+
163+
/* Configure the Systick interrupt time */
164+
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
165+
166+
/* Configure the Systick */
167+
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
168+
169+
/* SysTick_IRQn interrupt configuration */
170+
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
171+
}
172+
173+
#ifdef __cplusplus
174+
}
175+
#endif

‎variants/NUCLEO_L452RE/variant.h

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
/*
2+
Copyright (c) 2011 Arduino. All right reserved.
3+
4+
This library is free software; you can redistribute it and/or
5+
modify it under the terms of the GNU Lesser General Public
6+
License as published by the Free Software Foundation; either
7+
version 2.1 of the License, or (at your option) any later version.
8+
9+
This library is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
See the GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public
15+
License along with this library; if not, write to the Free Software
16+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
#ifndef _VARIANT_ARDUINO_STM32_
20+
#define _VARIANT_ARDUINO_STM32_
21+
22+
/*----------------------------------------------------------------------------
23+
* Headers
24+
*----------------------------------------------------------------------------*/
25+
#include "PeripheralPins.h"
26+
27+
#ifdef __cplusplus
28+
extern "C"{
29+
#endif // __cplusplus
30+
31+
/*----------------------------------------------------------------------------
32+
* Pins
33+
*----------------------------------------------------------------------------*/
34+
extern const PinName digitalPin[];
35+
36+
#define PA3 0
37+
#define PA2 1
38+
#define PA10 2
39+
#define PB3 3
40+
#define PB5 4
41+
#define PB4 5
42+
#define PB10 6
43+
#define PA8 7
44+
#define PA9 8
45+
#define PC7 9
46+
#define PB6 10
47+
#define PA7 11 // A6
48+
#define PA6 12 // A7
49+
#define PA5 13 // LED
50+
#define PB9 14
51+
#define PB8 15
52+
// ST Morpho
53+
// CN7 Left Side
54+
#define PC10 16
55+
#define PC12 17
56+
// 18 is NC - BOOT0
57+
#define PA13 19 // SWD
58+
#define PA14 20 // SWD
59+
#define PA15 21
60+
#define PB7 22
61+
#define PC13 23
62+
#define PC14 24
63+
#define PC15 25
64+
#define PH0 26
65+
#define PH1 27
66+
#define PC2 28 // A8
67+
#define PC3 29 // A9
68+
// CN7 Right Side
69+
#define PC11 30
70+
#define PD2 31
71+
// CN10 Left Side
72+
#define PC9 32
73+
// CN10 Right side
74+
#define PC8 33
75+
#define PC6 34
76+
#define PC5 35
77+
#define PA12 36
78+
#define PA11 37
79+
#define PB12 38
80+
#define PB11 39
81+
#define PB2 40
82+
#define PB1 41
83+
#define PB15 42
84+
#define PB14 43
85+
#define PB13 44
86+
#define PC4 45 // A10
87+
#define PA0 46 // A0
88+
#define PA1 47 // A1
89+
#define PA4 48 // A2
90+
#define PB0 49 // A3
91+
#define PC1 50 // A4
92+
#define PC0 51 // A5
93+
94+
// This must be a literal
95+
#define NUM_DIGITAL_PINS 58
96+
// This must be a literal with a value less than or equal to to MAX_ANALOG_INPUTS
97+
#define NUM_ANALOG_INPUTS 11
98+
#define NUM_ANALOG_FIRST 46
99+
100+
// On-board LED pin number
101+
#define LED_BUILTIN 13
102+
#define LED_GREEN LED_BUILTIN
103+
104+
// On-board user button
105+
#define USER_BTN PC13
106+
107+
// Timer Definitions
108+
// Do not use timer used by PWM pins when possible. See PinMap_PWM.
109+
#define TIMER_TONE TIM6
110+
111+
// Do not use basic timer: OC is required
112+
#define TIMER_SERVO TIM2 //TODO: advanced-control timers don't work
113+
114+
// UART Definitions
115+
#define SERIAL_UART_INSTANCE 2 //Connected to ST-Link
116+
117+
// Default pin used for 'Serial' instance (ex: ST-Link)
118+
// Mandatory for Firmata
119+
#define PIN_SERIAL_RX 0
120+
#define PIN_SERIAL_TX 1
121+
122+
#ifdef __cplusplus
123+
} // extern "C"
124+
#endif
125+
/*----------------------------------------------------------------------------
126+
* Arduino objects - C++ only
127+
*----------------------------------------------------------------------------*/
128+
129+
#ifdef __cplusplus
130+
// These serial port names are intended to allow libraries and architecture-neutral
131+
// sketches to automatically default to the correct port name for a particular type
132+
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
133+
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
134+
//
135+
// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
136+
//
137+
// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
138+
//
139+
// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
140+
//
141+
// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
142+
//
143+
// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
144+
// pins are NOT connected to anything by default.
145+
#define SERIAL_PORT_MONITOR Serial
146+
#define SERIAL_PORT_HARDWARE Serial2
147+
#endif
148+
149+
#endif /* _VARIANT_ARDUINO_STM32_ */

0 commit comments

Comments
 (0)
Please sign in to comment.