Skip to content

Commit 7b980c4

Browse files
author
rogerclarkmelbourne
committed
Fix for missing UART 4 and 5 from STM32F104RE and STM32F103Z series boards. Note this code has not been fully tested
1 parent bbf5800 commit 7b980c4

3 files changed

Lines changed: 31 additions & 10 deletions

File tree

STM32F1/cores/maple/HardwareSerial.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
BOARD_USART##n##_TX_PIN, \
4343
BOARD_USART##n##_RX_PIN)
4444

45+
#define DEFINE_HWSERIAL_UART(name, n) \
46+
HardwareSerial name(UART##n, \
47+
BOARD_USART##n##_TX_PIN, \
48+
BOARD_USART##n##_RX_PIN)
49+
4550
#ifdef BOOTLOADER_maple
4651
#if BOARD_HAVE_USART1
4752
DEFINE_HWSERIAL(Serial1, 1);
@@ -53,13 +58,13 @@
5358
DEFINE_HWSERIAL(Serial3, 3);
5459
#endif
5560
#if BOARD_HAVE_UART4
56-
DEFINE_HWSERIAL(Serial4, 4);
61+
DEFINE_HWSERIAL_UART(Serial4, 4);
5762
#endif
5863
#if BOARD_HAVE_UART5
59-
DEFINE_HWSERIAL(Serial5, 5);
64+
DEFINE_HWSERIAL_UART(Serial5, 5);
6065
#endif
6166
#if BOARD_HAVE_USART6
62-
DEFINE_HWSERIAL(Serial6, 6);
67+
DEFINE_HWSERIAL_UART(Serial6, 6);
6368
#endif
6469
#else
6570
#if BOARD_HAVE_USART1
@@ -72,13 +77,13 @@
7277
DEFINE_HWSERIAL(Serial2, 3);
7378
#endif
7479
#if BOARD_HAVE_UART4
75-
DEFINE_HWSERIAL(Serial3, 4);
80+
DEFINE_HWSERIAL_UART(Serial3, 4);
7681
#endif
7782
#if BOARD_HAVE_UART5
78-
DEFINE_HWSERIAL(Serial4, 5);
83+
DEFINE_HWSERIAL_UART(Serial4, 5);
7984
#endif
8085
#if BOARD_HAVE_USART6
81-
DEFINE_HWSERIAL(Serial5, 6);
86+
DEFINE_HWSERIAL_UART(Serial5, 6);
8287
#endif
8388
#endif
8489
HardwareSerial::HardwareSerial(usart_dev *usart_device,

STM32F1/variants/generic_stm32f103rxx/board/board.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,23 @@
4444
#define BOARD_BUTTON_PIN 38
4545
#define BOARD_LED_PIN 13
4646

47-
/* Note: UART4 and UART5 have pins which aren't broken out :( */
48-
#define BOARD_NR_USARTS 3
47+
// USARTS
48+
#define BOARD_NR_USARTS 5
4949
#define BOARD_USART1_TX_PIN PA9
5050
#define BOARD_USART1_RX_PIN PA10
51+
5152
#define BOARD_USART2_TX_PIN PA2
5253
#define BOARD_USART2_RX_PIN PA3
54+
5355
#define BOARD_USART3_TX_PIN PB10
5456
#define BOARD_USART3_RX_PIN PB11
5557

58+
#define BOARD_USART4_TX_PIN PC10
59+
#define BOARD_USART4_RX_PIN PC11
60+
61+
#define BOARD_USART5_TX_PIN PC12
62+
#define BOARD_USART6_RX_PIN PD2
63+
5664
/* Note:
5765
*
5866
* SPI3 is unusable due to pin 43 (PB4) and NRST tie-together :(, but

STM32F1/variants/generic_stm32f103zxx/board/board.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,23 @@
4444
#define BOARD_BUTTON_PIN 38
4545
#define BOARD_LED_PIN 13
4646

47-
/* Note: UART4 and UART5 have pins which aren't broken out :( */
48-
#define BOARD_NR_USARTS 3
47+
// USARTS
48+
#define BOARD_NR_USARTS 5
4949
#define BOARD_USART1_TX_PIN PA9
5050
#define BOARD_USART1_RX_PIN PA10
51+
5152
#define BOARD_USART2_TX_PIN PA2
5253
#define BOARD_USART2_RX_PIN PA3
54+
5355
#define BOARD_USART3_TX_PIN PB10
5456
#define BOARD_USART3_RX_PIN PB11
5557

58+
#define BOARD_USART4_TX_PIN PC10
59+
#define BOARD_USART4_RX_PIN PC11
60+
61+
#define BOARD_USART5_TX_PIN PC12
62+
#define BOARD_USART6_RX_PIN PD2
63+
5664
/* Note:
5765
*
5866
* SPI3 is unusable due to pin 43 (PB4) and NRST tie-together :(, but

0 commit comments

Comments
 (0)