I was experimenting with changing the priority grouping, although I changed it back to 0 so we are both on the same page. And yes, I have TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); in my code.
I just tried adding void TIM2_IRQHandler(void); to stm32_it.h, but unfortunately it did not seem to fix the issue.
It seems like it could be an issue with enabling the timer interrupt. Just for testing purposes, I defined TIM2_IRQHandler() as an empty function in my code and enabled the timer interrupt with:
NVIC_InitTypeDef nvicStructure; nvicStructure.NVIC_IRQChannel = TIM2_IRQn; nvicStructure.NVIC_IRQChannelPreemptionPriority = 0; nvicStructure.NVIC_IRQChannelSubPriority = 0; nvicStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&nvicStructure);
In my main loop, I have the LED toggling code mentioned in my previous post. When I compile and load this onto the device, the LED will not toggle. However, if I comment out nvicStructure.NVIC_IRQChannelCmd = ENABLE; in my interrupt enable function, the LED will toggle (obviously the interrupt will not be properly initialized).