Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 691d5dc1ea | |||
| 052d3fc5c0 | |||
| 4967cd9b32 |
+2
-4
@@ -45,10 +45,8 @@ extern "C" {
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
#define DEBUG_ITM
|
||||
#define DEBUG_DUMMY_FRAME
|
||||
|
||||
#ifdef DEBUG_ITM
|
||||
#define DEBUG
|
||||
#ifdef DEBUG
|
||||
#include <stdio.h>
|
||||
#define DEBUG_PRINT(...) printf(__VA_ARGS__)
|
||||
#else
|
||||
|
||||
+7
-4
@@ -49,6 +49,12 @@ void CAN_Logger_Init(CAN_HandleTypeDef *hcan1, CAN_HandleTypeDef *hcan2)
|
||||
filter.FilterActivation = ENABLE;
|
||||
filter.SlaveStartFilterBank = 14;
|
||||
|
||||
HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 6, 0);
|
||||
HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
|
||||
|
||||
HAL_NVIC_SetPriority(CAN2_RX0_IRQn, 6, 0);
|
||||
HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn);
|
||||
|
||||
filter.FilterBank = 0;
|
||||
if (HAL_CAN_ConfigFilter(hcan1, &filter) != HAL_OK) Error_Handler();
|
||||
if (HAL_CAN_Start(hcan1) != HAL_OK) Error_Handler();
|
||||
@@ -117,15 +123,12 @@ void vCANListener(void *argument)
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (osMessageQueueGet(queue, &message, NULL, 1000) == osOK)
|
||||
if (osMessageQueueGet(queue, &message, NULL, osWaitForever) == osOK)
|
||||
{
|
||||
// J1939 decoding
|
||||
|
||||
// RELAY: Push to the UART queue
|
||||
osMessageQueuePut(xUARTQueue, &message, 0U, 0U);
|
||||
}
|
||||
else DEBUG_PRINT("No CAN yet!\r\n");
|
||||
|
||||
}
|
||||
}
|
||||
/* END vCANListener */
|
||||
|
||||
+1
-21
@@ -104,26 +104,7 @@ 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)
|
||||
for (;;)
|
||||
{
|
||||
DEBUG_PRINT("Waiting for CAN traffic...\r\n");
|
||||
if (osMessageQueueGet(xUARTQueue, &message, NULL, osWaitForever) == osOK)
|
||||
@@ -135,6 +116,5 @@ void vUARTLogger(void *argument)
|
||||
DEBUG_PRINT("CAN frame sent via UART\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* END vUARTLoggerListen */
|
||||
|
||||
+2
-2
@@ -277,7 +277,7 @@ static void MX_CAN1_Init(void)
|
||||
|
||||
/* USER CODE END CAN1_Init 1 */
|
||||
hcan1.Instance = CAN1;
|
||||
hcan1.Init.Prescaler = 4;
|
||||
hcan1.Init.Prescaler = 8;
|
||||
hcan1.Init.Mode = CAN_MODE_SILENT;
|
||||
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
|
||||
hcan1.Init.TimeSeg1 = CAN_BS1_16TQ;
|
||||
@@ -314,7 +314,7 @@ static void MX_CAN2_Init(void)
|
||||
|
||||
/* USER CODE END CAN2_Init 1 */
|
||||
hcan2.Instance = CAN2;
|
||||
hcan2.Init.Prescaler = 8;
|
||||
hcan2.Init.Prescaler = 16;
|
||||
hcan2.Init.Mode = CAN_MODE_SILENT;
|
||||
hcan2.Init.SyncJumpWidth = CAN_SJW_1TQ;
|
||||
hcan2.Init.TimeSeg1 = CAN_BS1_16TQ;
|
||||
|
||||
Reference in New Issue
Block a user