2 years, 9 months ago.

STM32 devices receive extended CAN frames with invalid format

In can_api.c for STM32 devices there is a line in can_read method:

msg->format = (CANFormat)((uint8_t)0x04 & can->sFIFOMailBox[handle].RIR);

It is OK with standard (value 0) format, but not with extended (value 1), because this expression will be 4 when receiving extended ID.

CANFormat enum is declared in can_helper.h:

enum CANFormat {
    CANStandard = 0,
    CANExtended = 1,
    CANAny = 2
};

Where should I send a bug report about this?

Comment on this question

1 Answer

2 years, 9 months ago.

Hi,

There is a pull request on GitHub concerning the CAN. The can_filter function has been updated to support the standard and extended formats on all STM32 devices. Today it is supported only on STM32F0 devices.

https://github.com/ARMmbed/mbed-os/pull/3737

All bugs/enhancements requests have to be done on GitHub: https://github.com/ARMmbed/mbed-os/issues