aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libopencm3/stm32/can.h2
-rw-r--r--lib/stm32/can.c (renamed from lib/stm32/f1/can.c)13
2 files changed, 12 insertions, 3 deletions
diff --git a/include/libopencm3/stm32/can.h b/include/libopencm3/stm32/can.h
index d6636d5..cdb5df1 100644
--- a/include/libopencm3/stm32/can.h
+++ b/include/libopencm3/stm32/can.h
@@ -458,7 +458,7 @@
/* --- CAN_TIxR values ------------------------------------------------------ */
/* STID[10:0]: Standard identifier */
-#define CAN_TIxR_STID_MASK (0x3FF << 21)
+#define CAN_TIxR_STID_MASK (0x7FF << 21)
#define CAN_TIxR_STID_SHIFT 21
/* EXID[15:0]: Extended identifier */
diff --git a/lib/stm32/f1/can.c b/lib/stm32/can.c
index fc7e0e7..73036f4 100644
--- a/lib/stm32/f1/can.c
+++ b/lib/stm32/can.c
@@ -18,7 +18,16 @@
*/
#include <libopencm3/stm32/can.h>
-#include <libopencm3/stm32/f1/rcc.h>
+
+#if defined(STM32F1)
+# include <libopencm3/stm32/f1/rcc.h>
+#elif defined(STM32F2)
+# include <libopencm3/stm32/f2/rcc.h>
+#elif defined(STM32F4)
+# include <libopencm3/stm32/f4/rcc.h>
+#else
+# error "stm32 family not defined."
+#endif
void can_reset(u32 canport)
{
@@ -299,5 +308,5 @@ void can_receive(u32 canport, u8 fifo, bool release, u32 *id, bool *ext,
/* Release the FIFO. */
if (release)
- can_fifo_release(CAN1, 0);
+ can_fifo_release(canport, fifo);
}