cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7B3RIT interrupts don't work

EBayr.2
Associate

Hi, 

I am trying to launch a device that has an STM32H7B3RIT, but I have encountered some issues regarding interrupts. I am using CubeMX and CubeIDE to generate a very simple project with an internal clock (64MHz) and no initial configuration. However, I couldn't use HAL_DELAY(..) and after some investigation, I realised that SysTick_Handler is not being called, meaning that no interrupt is running. I have also tested with TIM7 interrupt, but it still doesn't work.

I have quite a bit of experience with CubeMX and CubeIDE with other STM32 microcontrollers, and I am sure I didn't miss any configuration. I believe the problem may be due to a CubeIDE bug or MCU-specific configurations.

What can I do?

STM32CubeIDE: 1.11.0

STM32CubeMX: 6.7.0

3 REPLIES 3
Pavel A.
Evangelist III

With internal clock it doesn't tick? Check that SCB->VTOR value is the address of your interrupt vectors table.

EBayr.2
Associate

I'm not aware of that setting. Should it be done by CubeMx? I've used CubeMX several times with the STM32F4 series and I've never had to set that register. Could you please provide me with some extra information about it? Also, what value do I need to set it to?

Pavel A.
Evangelist III

SCB->VTOR is the register that contains base addresses of the vectors table.

In the ST CubeIDE library and examples it is usually set in file system_stm32xxx.c, function SystemInit.

But the logic of how it is done there has been often criticized (in vain).

You can simply add the following two lines in the beginning of main()

int main(void) 
{
    extern uint32_t g_pfnVectors[];  /* defined in startup_***.s */
    SCB->VTOR = (uint32_t)(void*)g_pfnVectors;
   ............