diff --git a/targets/TARGET_STM/can_api.c b/targets/TARGET_STM/can_api.c index c9888dc59c1..4ee8b9e99d8 100644 --- a/targets/TARGET_STM/can_api.c +++ b/targets/TARGET_STM/can_api.c @@ -155,19 +155,13 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz can_internal_init(obj); } -#if STATIC_PINMAP_READY -#define CAN_INIT_DIRECT can_init_direct void can_init_direct(can_t *obj, const can_pinmap_t *pinmap) -#else -#define CAN_INIT_DIRECT _can_init_direct -static void _can_init_direct(can_t *obj, const can_pinmap_t *pinmap) -#endif { /* default frequency is 100 kHz */ CAN_INIT_FREQ_DIRECT(obj, pinmap, 100000); } -void can_init(can_t *obj, PinName rd, PinName td) +void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) { CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD); @@ -178,27 +172,14 @@ void can_init(can_t *obj, PinName rd, PinName td) const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - /* default frequency is 100 kHz */ - CAN_INIT_DIRECT(obj, &static_pinmap); + CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz); } - - -void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) +void can_init(can_t *obj, PinName rd, PinName td) { - CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); - CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD); - int peripheral = (int) pinmap_merge(can_rd, can_td); - - int function_rd = (int)pinmap_find_function(rd, PinMap_CAN_RD); - int function_td = (int)pinmap_find_function(td, PinMap_CAN_TD); - - const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - - CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, 100000); + can_init_freq(obj, rd, td, 100000); } - void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id) { irq_handler = handler; @@ -654,19 +635,13 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz can_filter(obj, 0, 0, CANStandard, filter_number); } -#if STATIC_PINMAP_READY -#define CAN_INIT_DIRECT can_init_direct void can_init_direct(can_t *obj, const can_pinmap_t *pinmap) -#else -#define CAN_INIT_DIRECT _can_init_direct -static void _can_init_direct(can_t *obj, const can_pinmap_t *pinmap) -#endif { /* default frequency is 100 kHz */ CAN_INIT_FREQ_DIRECT(obj, pinmap, 100000); } -void can_init(can_t *obj, PinName rd, PinName td) +void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) { CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD); @@ -677,22 +652,12 @@ void can_init(can_t *obj, PinName rd, PinName td) const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - /* default frequency is 100 kHz */ - CAN_INIT_DIRECT(obj, &static_pinmap); + CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz); } -void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) +void can_init(can_t *obj, PinName rd, PinName td) { - CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); - CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD); - int peripheral = (int) pinmap_merge(can_rd, can_td); - - int function_rd = (int)pinmap_find_function(rd, PinMap_CAN_RD); - int function_td = (int)pinmap_find_function(td, PinMap_CAN_TD); - - const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - - CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, 100000); + can_init_freq(obj, rd, td, 100000); } void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id)