NUMAKER CAN sample

Revision:
11:36d172d475fa
Parent:
10:33d27c970411
--- a/main.cpp	Wed Apr 17 17:41:40 2024 +0800
+++ b/main.cpp	Wed Apr 17 17:47:56 2024 +0800
@@ -9,6 +9,11 @@
 
 #define CAN_TX_MODE_TEST            0
 #define CAN_RX_MODE_TEST            1
+#define CAN_LOOPBACK_MODE_TEST      0
+#if CAN_LOOPBACK_MODE_TEST && (!CAN_TX_MODE_TEST || !CAN_RX_MODE_TEST)
+#error "Either TX or RX not enabled for loopback mode"
+#endif
+
 /* WARNING: Don't enable interrupt mode on receive side. It is not supported on Nuvoton targets. */
 #define CAN_RX_IRQ_EN               0
 #define LED_ALL_OFF                 led1=led2=led3=1
@@ -105,7 +110,14 @@
     canObj.filter(CAN_DEV_ID, 0, CANStandard, MSG_NUM_INDEX);
     
 #endif
-    
+
+#if CAN_LOOPBACK_MODE_TEST
+    if (!canObj.mode(CAN::SilentTest)) {
+        printf("CAN: Configure to SilentTest mode failed\n\n");
+        return EXIT_FAILURE;
+    }
+#endif
+
     while (true)
     {