Skip to content

Commit bf139eb

Browse files
authored
Merge pull request #5791 from bcostm/fx_can_filter
STM32 CAN: fix wrong ID and MASK filter
2 parents f01fbde + d96e76e commit bf139eb

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

targets/TARGET_STM/can_api.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,11 +468,11 @@ int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t
468468
sFilterConfig.FilterIdLow = 0x0;
469469
sFilterConfig.FilterMaskIdHigh = mask << 5;
470470
sFilterConfig.FilterMaskIdLow = 0x0; // allows both remote and data frames
471-
} else if (format == CANExtended) {
471+
} else { // format == CANExtended
472472
sFilterConfig.FilterIdHigh = id >> 13; // EXTID[28:13]
473-
sFilterConfig.FilterIdLow = (0x00FF & (id << 3)) | (1 << 2); // EXTID[12:0]
473+
sFilterConfig.FilterIdLow = (0xFFFF & (id << 3)) | (1 << 2); // EXTID[12:0] + IDE
474474
sFilterConfig.FilterMaskIdHigh = mask >> 13;
475-
sFilterConfig.FilterMaskIdLow = (0x00FF & (mask << 3)) | (1 << 2);
475+
sFilterConfig.FilterMaskIdLow = (0xFFFF & (mask << 3)) | (1 << 2);
476476
}
477477

478478
sFilterConfig.FilterFIFOAssignment = 0;

0 commit comments

Comments
 (0)