mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #12113 from mprse/can_init_fix
Fix for issue #12104 (STM32 can_init_freq() ignores frequency)pull/12163/head
commit
7609eb4741
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue