Merge pull request #12113 from mprse/can_init_fix

Fix for issue #12104 (STM32 can_init_freq() ignores frequency)
pull/12163/head
Martin Kojtal 2019-12-20 11:24:05 +01:00 committed by GitHub
commit 7609eb4741
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 46 deletions

View File

@ -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)