Skip to content

Commit

Permalink
Receiver (#132)
Browse files Browse the repository at this point in the history
* Disabled outgoing can

* Made reciever build

* Trying to make CAN work - 1/22

* temp changes

* Made CAN Sorta Work

* Made interrupts work

* Cleaned up dummy changes

* fixed typo

* Made ioc changes
  • Loading branch information
HamzaIqbal786110 authored Feb 4, 2024
1 parent 8b37a6b commit 130fe03
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Core/Inc/stm32f4xx_hal_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@
#define DATA_CACHE_ENABLE 1U

#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 1U /* CAN register callback disabled */
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
Expand Down
10 changes: 10 additions & 0 deletions Core/Src/can_handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,16 @@ void vCanDispatch(void* pv_params)
queue_fault(&fault_data);
}
}
/* Uncomment this if needed for debugging */
// CAN_RxHeaderTypeDef rx_header;
// can_msg_t new_msg;
// if(HAL_CAN_GetRxMessage(can1->hcan, CAN_RX_FIFO0, &rx_header, new_msg.data) != HAL_OK)
// {
// serial_print("IM SCARED \r\n");
// }
// else {
// serial_print("MESSAGE CONTENTS\r\nHeader\t%X\r\nData\t%X%X%X%X\r\n", rx_header.StdId, new_msg.data[0], new_msg.data[1], new_msg.data[2], new_msg.data[3]);
// }

/* Yield to other tasks */
osDelay(CAN_DISPATCH_DELAY);
Expand Down
14 changes: 9 additions & 5 deletions Core/Src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ int main(void)
MX_USART3_UART_Init();
MX_ADC2_Init();
MX_ADC3_Init();

/* USER CODE BEGIN 2 */

/* USER CODE END 2 */
Expand Down Expand Up @@ -208,7 +209,7 @@ int main(void)
/* Messaging */
/* Note that CAN Router initializes CAN */
dti_router_handle = osThreadNew(vDTIRouter, mc, &dti_router_attributes);
//steeringio_router_handle = osThreadNew(vSteeringIORouter, wheel, &steeringio_router_attributes);
// steeringio_router_handle = osThreadNew(vSteeringIORouter, wheel, &steeringio_router_attributes);
can_dispatch_handle = osThreadNew(vCanDispatch, can1, &can_dispatch_attributes);
serial_monitor_handle = osThreadNew(vSerialMonitor, NULL, &serial_monitor_attributes);

Expand Down Expand Up @@ -460,24 +461,27 @@ static void MX_CAN1_Init(void)

/* USER CODE END CAN1_Init 1 */
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 1;
hcan1.Init.Prescaler = 3;
hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_3TQ;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_13TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_2TQ;
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoWakeUp = ENABLE;
hcan1.Init.AutoRetransmission = DISABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
hcan1.Init.TransmitFifoPriority = ENABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CAN1_Init 2 */

/* USER CODE END CAN1_Init 2 */
HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
HAL_CAN_IRQHandler(&hcan1);

}

Expand Down
15 changes: 11 additions & 4 deletions cerberus.ioc
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,15 @@ ADC3.ScanConvMode=ENABLE
CAD.formats=
CAD.pinconfig=
CAD.provider=
CAN1.CalculateBaudRate=333333
CAN1.CalculateTimeBit=3000
CAN1.CalculateTimeQuantum=1000.0
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate
CAN1.AWUM=ENABLE
CAN1.BS1=CAN_BS1_13TQ
CAN1.CalculateBaudRate=355555
CAN1.CalculateTimeBit=2812
CAN1.CalculateTimeQuantum=187.5
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,AWUM,NART,TXFP
CAN1.NART=ENABLE
CAN1.Prescaler=3
CAN1.TXFP=ENABLE
FREERTOS.IPParameters=Tasks01
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
File.Version=6
Expand Down Expand Up @@ -107,6 +112,7 @@ NVIC.SavedSvcallIrqHandlerGenerated=true
NVIC.SavedSystickIrqHandlerGenerated=true
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:false\:true\:false
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
PA0-WKUP.Locked=true
PA0-WKUP.Signal=ADCx_IN0
PA1.Locked=true
Expand Down Expand Up @@ -250,3 +256,4 @@ VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
board=custom
rtos.0.ip=FREERTOS
isbadioc=false

0 comments on commit 130fe03

Please sign in to comment.