From 7ba2987a83bab1adb1db9b7f167e2454c7cb9b44 Mon Sep 17 00:00:00 2001 From: Gareth McMullin Date: Tue, 24 Jan 2017 10:49:45 +1300 Subject: [PATCH] native: Fix macros for setting pin mode. Fixes #184 --- src/platforms/native/platform.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/platforms/native/platform.h b/src/platforms/native/platform.h index 386291a..397dd8c 100644 --- a/src/platforms/native/platform.h +++ b/src/platforms/native/platform.h @@ -109,22 +109,25 @@ #define LED_IDLE_RUN LED_1 #define LED_ERROR LED_2 -#define TMS_SET_MODE() \ +#define TMS_SET_MODE() do { \ gpio_set(TMS_DIR_PORT, TMS_DIR_PIN); \ gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \ - GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN); -#define SWDIO_MODE_FLOAT() \ + GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN); \ +} while(0) +#define SWDIO_MODE_FLOAT() do { \ gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \ GPIO_CNF_INPUT_FLOAT, SWDIO_PIN); \ - gpio_clear(SWDIO_DIR_PORT, SWDIO_DIR_PIN); -#define SWDIO_MODE_DRIVE() \ + gpio_clear(SWDIO_DIR_PORT, SWDIO_DIR_PIN); \ +} while(0) +#define SWDIO_MODE_DRIVE() do { \ gpio_set(SWDIO_DIR_PORT, SWDIO_DIR_PIN); \ gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \ - GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN); - -#define UART_PIN_SETUP() \ + GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN); \ +} while(0) +#define UART_PIN_SETUP() do { \ gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \ - GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN); + GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN); \ +} while(0) #define USB_DRIVER stm32f103_usb_driver #define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ