can receive timeout disable systick interrupt
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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.
- Labels:
-
CAN
-
Interrupt
-
STM32Cube MCU Packages
-
SysTick
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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.
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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
‌Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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.
Up vote any posts that you find helpful, it shows what's working..
