diff --git a/targets/TARGET_STM/can_api.c b/targets/TARGET_STM/can_api.c index 4ee8b9e99d..163597c261 100644 --- a/targets/TARGET_STM/can_api.c +++ b/targets/TARGET_STM/can_api.c @@ -100,12 +100,8 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz pin_function(pinmap->rd_pin, pinmap->rd_function); pin_function(pinmap->td_pin, pinmap->td_function); // Add pull-ups - if (pinmap->rd_pin != NC) { - pin_mode(pinmap->rd_pin, PullUp); - } - if (pinmap->td_pin != NC) { - pin_mode(pinmap->td_pin, PullUp); - } + pin_mode(pinmap->rd_pin, PullUp); + pin_mode(pinmap->td_pin, PullUp); // Default values obj->CanHandle.Instance = (FDCAN_GlobalTypeDef *)pinmap->peripheral; @@ -599,12 +595,8 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz pin_function(pinmap->rd_pin, pinmap->rd_function); pin_function(pinmap->td_pin, pinmap->td_function); // Add pull-ups - if (pinmap->rd_pin != NC) { - pin_mode(pinmap->rd_pin, PullUp); - } - if (pinmap->td_pin != NC) { - pin_mode(pinmap->td_pin, PullUp); - } + pin_mode(pinmap->rd_pin, PullUp); + pin_mode(pinmap->td_pin, PullUp); /* Use default values for rist init */ obj->CanHandle.Instance = (CAN_TypeDef *)pinmap->peripheral; diff --git a/targets/TARGET_STM/pinmap.c b/targets/TARGET_STM/pinmap.c index 467544c56e..ce761e2d47 100644 --- a/targets/TARGET_STM/pinmap.c +++ b/targets/TARGET_STM/pinmap.c @@ -59,7 +59,9 @@ const uint32_t ll_pin_defines[16] = { */ void pin_function(PinName pin, int data) { - MBED_ASSERT(pin != (PinName)NC); + if (pin == NC) { + return; + } // Get the pin informations uint32_t mode = STM_PIN_FUNCTION(data); @@ -163,7 +165,9 @@ void pin_function(PinName pin, int data) */ void pin_mode(PinName pin, PinMode mode) { - MBED_ASSERT(pin != (PinName)NC); + if (pin == NC) { + return; + } uint32_t port_index = STM_PORT(pin); uint32_t ll_pin = ll_pin_defines[STM_PIN(pin)]; diff --git a/targets/TARGET_STM/serial_api.c b/targets/TARGET_STM/serial_api.c index 4ac3f3d50d..62f6054866 100644 --- a/targets/TARGET_STM/serial_api.c +++ b/targets/TARGET_STM/serial_api.c @@ -157,14 +157,10 @@ static void _serial_init_direct(serial_t *obj, const serial_pinmap_t *pinmap) MBED_ASSERT(obj_s->index >= 0); // Configure UART pins - if (pinmap->tx_pin != NC) { - pin_function(pinmap->tx_pin, pinmap->tx_function); - pin_mode(pinmap->tx_pin, PullUp); - } - if (pinmap->rx_pin != NC) { - pin_function(pinmap->rx_pin, pinmap->rx_function); - pin_mode(pinmap->rx_pin, PullUp); - } + pin_function(pinmap->tx_pin, pinmap->tx_function); + pin_mode(pinmap->tx_pin, PullUp); + pin_function(pinmap->rx_pin, pinmap->rx_function); + pin_mode(pinmap->rx_pin, PullUp); // Configure UART obj_s->baudrate = 9600; // baudrate default value @@ -355,13 +351,9 @@ void serial_free(serial_t *obj) #endif /* DUAL_CORE */ // Configure GPIOs - if (obj_s->pin_tx != NC) { - pin_function(obj_s->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); - } + pin_function(obj_s->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); - if (obj_s->pin_rx != NC) { - pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); - } + pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[obj_s->index] = 0; } diff --git a/targets/TARGET_STM/stm_spi_api.c b/targets/TARGET_STM/stm_spi_api.c index 9bcc0bc2a4..d6d2aaa4d0 100644 --- a/targets/TARGET_STM/stm_spi_api.c +++ b/targets/TARGET_STM/stm_spi_api.c @@ -218,14 +218,12 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap) #endif // Configure the SPI pins - if (pinmap->mosi_pin != NC) { - pin_function(pinmap->mosi_pin, pinmap->mosi_function); - pin_mode(pinmap->mosi_pin, PullNone); - } - if (pinmap->miso_pin != NC) { - pin_function(pinmap->miso_pin, pinmap->miso_function); - pin_mode(pinmap->miso_pin, PullNone); - } + pin_function(pinmap->mosi_pin, pinmap->mosi_function); + pin_mode(pinmap->mosi_pin, PullNone); + + pin_function(pinmap->miso_pin, pinmap->miso_function); + pin_mode(pinmap->miso_pin, PullNone); + pin_function(pinmap->sclk_pin, pinmap->sclk_function); pin_mode(pinmap->sclk_pin, PullNone); spiobj->pin_miso = pinmap->miso_pin; @@ -370,12 +368,8 @@ void spi_free(spi_t *obj) LL_HSEM_ReleaseLock(HSEM, CFG_HW_RCC_SEMID, HSEM_CR_COREID_CURRENT); #endif /* DUAL_CORE */ // Configure GPIOs - if (spiobj->pin_miso != NC) { - pin_function(spiobj->pin_miso, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); - } - if (spiobj->pin_mosi != NC) { - pin_function(spiobj->pin_mosi, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); - } + pin_function(spiobj->pin_miso, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); + pin_function(spiobj->pin_mosi, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(spiobj->pin_sclk, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); if (handle->Init.NSS != SPI_NSS_SOFT) { pin_function(spiobj->pin_ssel, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));