2022-08-29 11:23 PM
Hello Every One!!
I am Using NUCLEO G0B1RE Board, facing Issue with CAN Receive Function I am using MICROCHIP CAN BUS ANALYSER and NUCLEO BOARD for CAN Communication
void CAN_Recieve(void){
while( (HAL_FDCAN_GetRxFifoFillLevel(&hfdcan1,FDCAN_RX_FIFO0) < 1 ) )
{
}
if(HAL_FDCAN_GetRxMessage(&hfdcan1,FDCAN_RX_FIFO0, &RxHeader ,RxData) != HAL_OK)
{
Error_Handler();
}
}
and also in my main function after all the HAL inits for my project
while(1)
{
CAN_Recieve();
ADC_Calculation();
delay_ms(1000); //1sec
PWM_Control();
}
let me explain what i have observed
for the first time when i send data from CANALYSER to Nucleo Board it receives Identifier and Data sucessfully, If i dont send the CAN message from CANALYSER for the send time the MCU is hang in the While Loop ,its not executing ADC calculation and PWM_Control functions in my main function
this is the API
while( (HAL_FDCAN_GetRxFifoFillLevel(&hfdcan1,FDCAN_RX_FIFO0) < 1 ) )
{
}
unless until I send another CAN message from CANALYSER it reads sucessfully.
I want to resume my Main Function even if send the CAN message from CANALYSER or not it should execute my Main function while Loop
please suggest me
Regards,
Karthik
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.