diff options
| author | Emil Fresk <[email protected]> | 2024-10-27 09:55:00 +0100 |
|---|---|---|
| committer | Emil Fresk <[email protected]> | 2024-10-27 10:10:46 +0100 |
| commit | 917f1d1f4de6f7e25f483561001a9b5b36cbce7e (patch) | |
| tree | 7186e7987c8797036d70cda91ec680b8b771ca22 /examples | |
| parent | 8f273497453d3ca3f297465b67820d4d36705d11 (diff) | |
This fixes 2 issues where STM32 BXCAN would hang
1. If one received frames under an `interrupt_free` section, in my case
`init` in RTIC, the RX IRQ will fire and clear it's enable bit after
`interrupt_free` is complete. There is no frame to read so RX is now
unconditionally disabled forever.
2. On clearing of RX IRQ, TX stops silently. This happens due to the use
of `write` instead of `modify` when modifying IRQ enable bits.
Solution 1: Enable RX IRQs on every call to `try_read` that return no
data. This solution also solves the issue of very delayed handling of
the RX IRQ which would cause the same issue.
Solution 2: Use `modify` instead of `write`.
Diffstat (limited to 'examples')
0 files changed, 0 insertions, 0 deletions
