2017-08-17 07:23 AM
I am using hal lib.When I cut can transmission between microcontrollers.It is stuck in this function:
HAL_GetTick() currently get same value because systick interrupt not working so the value systick increase every tick doesnt increase.So I stucked in this loop.Why systick interrupt not works?
This loop is in that function =>
HAL_StatusTypeDef HAL_CAN_Receive(CAN_HandleTypeDef* hcan, uint8_t FIFONumber, uint32_t Timeout)
That fuction is in that dir =>
stm32f3xx_hal_can.c
#can #stm32 #hal-broken #systick #interrupt #stupid-as-designedSolved! Go to Solution.
2017-08-17 10:16 AM
Should be call by BSP or MSP initialization code, check in there.
Check also if other Interrupts are working, and that SysTick Handler is present.
2017-08-17 07:36 AM
Probably because you're blocking in a callback? ie In Interrupt context, so priorities and inversion involved.
Change preemption levels so SysTick can fire, better yet use a TIM->CNT as the counter, not a software ticker.
#hal%20broken
#stupid%20as%20designed
2017-08-17 10:04 AM
I call this function in while(in main) when I cut transmission again stuck...How can I know if systick interrupt enabled or not
2017-08-17 10:16 AM
Should be call by BSP or MSP initialization code, check in there.
Check also if other Interrupts are working, and that SysTick Handler is present.