2017-08-17 7: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 7: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.
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.