diff --git a/targets/TARGET_STM/can_api.c b/targets/TARGET_STM/can_api.c index c9888dc59c..4ee8b9e99d 100644 --- a/targets/TARGET_STM/can_api.c +++ b/targets/TARGET_STM/can_api.c @@ -155,35 +155,12 @@ 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) -{ - 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}; - - /* default frequency is 100 kHz */ - CAN_INIT_DIRECT(obj, &static_pinmap); -} - - - void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) { CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); @@ -195,9 +172,13 @@ void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, 100000); + CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz); } +void can_init(can_t *obj, PinName rd, PinName td) +{ + can_init_freq(obj, rd, td, 100000); +} void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id) { @@ -654,33 +635,12 @@ 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) -{ - 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}; - - /* default frequency is 100 kHz */ - CAN_INIT_DIRECT(obj, &static_pinmap); -} - void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) { CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD); @@ -692,7 +652,12 @@ void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td}; - CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, 100000); + CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz); +} + +void can_init(can_t *obj, PinName rd, PinName td) +{ + can_init_freq(obj, rd, td, 100000); } void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id)