我使用 STM3CubeIDE 为
STM32l496ve 芯片创建了一个默认项目(没有更改设置)。它生成一个主文件,其中包含:
- int main(void)
- HAL_Init();
- SystemClock_Config();
- while (1)
- {
- }
- return 0;
- }
以及在 stm32l4xx_it.c 中定义的 Sys
tick_Handler:
- void SysTick_Handler(void)
- {
- /* USER CODE BEGIN SysTick_IRQn 0 */
- /* USER CODE END SysTick_IRQn 0 */
- HAL_IncTick();
- /* USER CODE BEGIN SysTick_IRQn 1 */
- /* USER CODE END SysTick_IRQn 1 */
- }
启动文件startup_stm32l496vetx.s在向量表中定义了SysTick:
- _pfnVectors:
- .word _estack
- .word Reset_Handler
- .word NMI_Handler
- .word HardFault_Handler
- .word MemManage_Handler
- .word BusFault_Handler
- .word UsageFault_Handler
- .word 0
- .word 0
- .word 0
- .word 0
- .word SVC_Handler
- .word DebugMon_Handler
- .word 0
- .word PendSV_Handler
- .word SysTick_Handler
- .word WWDG_IRQHandler
- ...
- ...
但尽管如此,SysTick 似乎并没有被中断。HAL_Delay() 会导致无限循环,并且永远不会调用 SysTick_Handler() 中 HAL_IncTick 处的断点。