diff --git a/STM32F1/cores/maple/HardwareSerial.cpp b/STM32F1/cores/maple/HardwareSerial.cpp index bb46edd..4cd67c3 100644 --- a/STM32F1/cores/maple/HardwareSerial.cpp +++ b/STM32F1/cores/maple/HardwareSerial.cpp @@ -37,54 +37,58 @@ #include #include -#define DEFINE_HWSERIAL(name, n) \ - HardwareSerial name(USART##n, \ - BOARD_USART##n##_TX_PIN, \ - BOARD_USART##n##_RX_PIN) +#if 0 -#define DEFINE_HWSERIAL_UART(name, n) \ - HardwareSerial name(UART##n, \ - BOARD_USART##n##_TX_PIN, \ - BOARD_USART##n##_RX_PIN) - -#ifdef SERIAL_USB - #if BOARD_HAVE_USART1 - DEFINE_HWSERIAL(Serial1, 1); - #endif - #if BOARD_HAVE_USART2 - DEFINE_HWSERIAL(Serial2, 2); - #endif - #if BOARD_HAVE_USART3 - DEFINE_HWSERIAL(Serial3, 3); - #endif - #if BOARD_HAVE_UART4 - DEFINE_HWSERIAL_UART(Serial4, 4); - #endif - #if BOARD_HAVE_UART5 - DEFINE_HWSERIAL_UART(Serial5, 5); - #endif - #if BOARD_HAVE_USART6 - DEFINE_HWSERIAL_UART(Serial6, 6); - #endif -#else - #if BOARD_HAVE_USART1 - DEFINE_HWSERIAL(Serial, 1); - #endif - #if BOARD_HAVE_USART2 - DEFINE_HWSERIAL(Serial1, 2); - #endif - #if BOARD_HAVE_USART3 - DEFINE_HWSERIAL(Serial2, 3); - #endif - #if BOARD_HAVE_UART4 - DEFINE_HWSERIAL_UART(Serial3, 4); - #endif - #if BOARD_HAVE_UART5 - DEFINE_HWSERIAL_UART(Serial4, 5); - #endif - #if BOARD_HAVE_USART6 - DEFINE_HWSERIAL_UART(Serial5, 6); + #define DEFINE_HWSERIAL(name, n) \ + HardwareSerial name(USART##n, \ + BOARD_USART##n##_TX_PIN, \ + BOARD_USART##n##_RX_PIN) + + #define DEFINE_HWSERIAL_UART(name, n) \ + HardwareSerial name(UART##n, \ + BOARD_USART##n##_TX_PIN, \ + BOARD_USART##n##_RX_PIN) + + #ifdef SERIAL_USB + #if BOARD_HAVE_USART1 + DEFINE_HWSERIAL(Serial1, 1); + #endif + #if BOARD_HAVE_USART2 + DEFINE_HWSERIAL(Serial2, 2); + #endif + #if BOARD_HAVE_USART3 + DEFINE_HWSERIAL(Serial3, 3); + #endif + #if BOARD_HAVE_UART4 + DEFINE_HWSERIAL_UART(Serial4, 4); + #endif + #if BOARD_HAVE_UART5 + DEFINE_HWSERIAL_UART(Serial5, 5); + #endif + #if BOARD_HAVE_USART6 + DEFINE_HWSERIAL_UART(Serial6, 6); + #endif + #else + #if BOARD_HAVE_USART1 + DEFINE_HWSERIAL(Serial, 1); + #endif + #if BOARD_HAVE_USART2 + DEFINE_HWSERIAL(Serial1, 2); + #endif + #if BOARD_HAVE_USART3 + DEFINE_HWSERIAL(Serial2, 3); + #endif + #if BOARD_HAVE_UART4 + DEFINE_HWSERIAL_UART(Serial3, 4); + #endif + #if BOARD_HAVE_UART5 + DEFINE_HWSERIAL_UART(Serial4, 5); + #endif + #if BOARD_HAVE_USART6 + DEFINE_HWSERIAL_UART(Serial5, 6); + #endif #endif + #endif HardwareSerial::HardwareSerial(usart_dev *usart_device, uint8 tx_pin, diff --git a/STM32F1/cores/maple/HardwareSerial.h b/STM32F1/cores/maple/HardwareSerial.h index 199b45f..e4f363c 100644 --- a/STM32F1/cores/maple/HardwareSerial.h +++ b/STM32F1/cores/maple/HardwareSerial.h @@ -100,6 +100,20 @@ struct usart_dev; #define SERIAL_9O2 0B00101011 +/* Roger Clark + * Moved macros from hardwareSerial.cpp + */ + +#define DEFINE_HWSERIAL(name, n) \ + HardwareSerial name(USART##n, \ + BOARD_USART##n##_TX_PIN, \ + BOARD_USART##n##_RX_PIN) + +#define DEFINE_HWSERIAL_UART(name, n) \ + HardwareSerial name(UART##n, \ + BOARD_USART##n##_TX_PIN, \ + BOARD_USART##n##_RX_PIN) + /* Roger clark. Changed class inheritance from Print to Stream. * Also added new functions for peek() and availableForWrite() diff --git a/STM32F1/variants/generic_stm32f103c/board.cpp b/STM32F1/variants/generic_stm32f103c/board.cpp index 1c6a570..d19d965 100644 --- a/STM32F1/variants/generic_stm32f103c/board.cpp +++ b/STM32F1/variants/generic_stm32f103c/board.cpp @@ -35,6 +35,10 @@ #include #include +/* Roger Clark. Added next to includes for changes to Serial */ +#include +#include + #include #include @@ -109,3 +113,27 @@ extern const uint8 boardADCPins[BOARD_NR_ADC_PINS] __FLASH__ = { extern const uint8 boardUsedPins[BOARD_NR_USED_PINS] __FLASH__ = { USB_DP, USB_DM }; + + +/* + * Roger Clark + * + * 2015/05/28 + * + * Moved definitions for Hardware Serial devices from HardwareSerial.cpp so that each board can define which Arduino "Serial" instance + * Maps to which hardware serial port on the microprocessor + */ + +#ifdef SERIAL_USB + DEFINE_HWSERIAL(Serial1, 1); + + DEFINE_HWSERIAL(Serial2, 2); + + DEFINE_HWSERIAL(Serial3, 3); +#else + DEFINE_HWSERIAL(Serial, 1); + + DEFINE_HWSERIAL(Serial1, 2); + + DEFINE_HWSERIAL(Serial2, 3); +#endif diff --git a/STM32F1/variants/nucleo_f103rb/board.cpp b/STM32F1/variants/nucleo_f103rb/board.cpp index 183a22e..0d63eed 100644 --- a/STM32F1/variants/nucleo_f103rb/board.cpp +++ b/STM32F1/variants/nucleo_f103rb/board.cpp @@ -47,6 +47,11 @@ #include #include +/* Roger Clark. Added next to includes for changes to Serial */ +#include +#include + + #include #include // boardInit(): NUCLEO rely on some remapping @@ -230,4 +235,29 @@ MOSI alternate functions on the GPIO ports. 1: Remap (NSS/PA15, SCK/PB3, MISO/PB4, MOSI/PB5) -*/ \ No newline at end of file +*/ + + + +/* + * Roger Clark + * + * 2015/05/28 + * + * Moved definitions for Hardware Serial devices from HardwareSerial.cpp so that each board can define which Arduino "Serial" instance + * Maps to which hardware serial port on the microprocessor + */ + +#ifdef SERIAL_USB + DEFINE_HWSERIAL(Serial1, 2); + + DEFINE_HWSERIAL(Serial2, 1); + + DEFINE_HWSERIAL(Serial3, 3); +#else + DEFINE_HWSERIAL(Serial, 2);// Use HW Serial 2 as "Serial" + + DEFINE_HWSERIAL(Serial1, 1); + + DEFINE_HWSERIAL(Serial2, 3); +#endif \ No newline at end of file