Skip to content

Commit 1c849a0

Browse files
Same changes as #12113. Fix STM32 can_init_freq() ignores frequency.
1 parent cf59441 commit 1c849a0

File tree

1 file changed

+8
-43
lines changed

1 file changed

+8
-43
lines changed

targets/TARGET_STM/can_api.c

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -155,35 +155,12 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz
155155
can_internal_init(obj);
156156
}
157157

158-
#if STATIC_PINMAP_READY
159-
#define CAN_INIT_DIRECT can_init_direct
160158
void can_init_direct(can_t *obj, const can_pinmap_t *pinmap)
161-
#else
162-
#define CAN_INIT_DIRECT _can_init_direct
163-
static void _can_init_direct(can_t *obj, const can_pinmap_t *pinmap)
164-
#endif
165159
{
166160
/* default frequency is 100 kHz */
167161
CAN_INIT_FREQ_DIRECT(obj, pinmap, 100000);
168162
}
169163

170-
void can_init(can_t *obj, PinName rd, PinName td)
171-
{
172-
CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD);
173-
CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD);
174-
int peripheral = (int) pinmap_merge(can_rd, can_td);
175-
176-
int function_rd = (int)pinmap_find_function(rd, PinMap_CAN_RD);
177-
int function_td = (int)pinmap_find_function(td, PinMap_CAN_TD);
178-
179-
const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td};
180-
181-
/* default frequency is 100 kHz */
182-
CAN_INIT_DIRECT(obj, &static_pinmap);
183-
}
184-
185-
186-
187164
void can_init_freq(can_t *obj, PinName rd, PinName td, int hz)
188165
{
189166
CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD);
@@ -198,6 +175,10 @@ void can_init_freq(can_t *obj, PinName rd, PinName td, int hz)
198175
CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz);
199176
}
200177

178+
void can_init(can_t *obj, PinName rd, PinName td)
179+
{
180+
can_init_freq(obj, rd, td, 100000);
181+
}
201182

202183
void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id)
203184
{
@@ -654,19 +635,13 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz
654635
can_filter(obj, 0, 0, CANStandard, filter_number);
655636
}
656637

657-
#if STATIC_PINMAP_READY
658-
#define CAN_INIT_DIRECT can_init_direct
659638
void can_init_direct(can_t *obj, const can_pinmap_t *pinmap)
660-
#else
661-
#define CAN_INIT_DIRECT _can_init_direct
662-
static void _can_init_direct(can_t *obj, const can_pinmap_t *pinmap)
663-
#endif
664639
{
665640
/* default frequency is 100 kHz */
666641
CAN_INIT_FREQ_DIRECT(obj, pinmap, 100000);
667642
}
668643

669-
void can_init(can_t *obj, PinName rd, PinName td)
644+
void can_init_freq(can_t *obj, PinName rd, PinName td, int hz)
670645
{
671646
CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD);
672647
CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD);
@@ -677,22 +652,12 @@ void can_init(can_t *obj, PinName rd, PinName td)
677652

678653
const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td};
679654

680-
/* default frequency is 100 kHz */
681-
CAN_INIT_DIRECT(obj, &static_pinmap);
655+
CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz);
682656
}
683657

684-
void can_init_freq(can_t *obj, PinName rd, PinName td, int hz)
658+
void can_init(can_t *obj, PinName rd, PinName td)
685659
{
686-
CANName can_rd = (CANName)pinmap_peripheral(rd, PinMap_CAN_RD);
687-
CANName can_td = (CANName)pinmap_peripheral(td, PinMap_CAN_TD);
688-
int peripheral = (int) pinmap_merge(can_rd, can_td);
689-
690-
int function_rd = (int)pinmap_find_function(rd, PinMap_CAN_RD);
691-
int function_td = (int)pinmap_find_function(td, PinMap_CAN_TD);
692-
693-
const can_pinmap_t static_pinmap = {peripheral, rd, function_rd, td, function_td};
694-
695-
CAN_INIT_FREQ_DIRECT(obj, &static_pinmap, hz);
660+
can_init_freq(obj, rd, td, 100000);
696661
}
697662

698663
void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id)

0 commit comments

Comments
 (0)