diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 58de877..61e7cd4 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -45,8 +45,10 @@ extern "C" { /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ -#define DEBUG -#ifdef DEBUG +#define DEBUG_ITM +#define DEBUG_DUMMY_FRAME + +#ifdef DEBUG_ITM #include #define DEBUG_PRINT(...) printf(__VA_ARGS__) #else diff --git a/Core/Src/canlog.c b/Core/Src/canlog.c index 64a1370..3442156 100644 --- a/Core/Src/canlog.c +++ b/Core/Src/canlog.c @@ -121,12 +121,14 @@ void vCANListener(void *argument) for (;;) { - if (osMessageQueueGet(queue, &message, NULL, osWaitForever) == osOK) + if (osMessageQueueGet(queue, &message, NULL, 1000) == osOK) { // J1939 decoding osMessageQueuePut(xUARTQueue, &message, 0U, 0U); } + else DEBUG_PRINT("No CAN yet!\r\n"); + } } /* END vCANListener */ diff --git a/Core/Src/cansend.c b/Core/Src/cansend.c index d9612d8..9c490ae 100644 --- a/Core/Src/cansend.c +++ b/Core/Src/cansend.c @@ -104,9 +104,25 @@ void vUARTLogger(void *argument) CanMessage_t message; char tx_buffer[45]; + #ifdef DEBUG_DUMMY_FRAME + CanMessage_t dummy_frame = { + .id = 0x0CF00400, // J1939 EEC1 ID + .dlc = 8, // 8 bytes of data + .isExtended = 1, // 29-bit Extended ID + .source = 1, // CAN1 + .payload = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11, 0x22} + }; + #endif + for (;;) { DEBUG_PRINT("Waiting for CAN traffic...\r\n"); + + #ifdef DEBUG_DUMMY_FRAME + osMessageQueuePut(xUARTQueue, &dummy_frame, 0U, 0U); + osDelay(1000); + #endif + if (osMessageQueueGet(xUARTQueue, &message, NULL, osWaitForever) == osOK) { osSemaphoreAcquire(xUARTDMASemaphore, osWaitForever);