像类似这种跳转,从某个区域执行跳转到另一个区域执行代码,运行失败的基本都是中断问题。
在跳转前所有用到的中断应该关闭,恢复外设默认功能状态。
在STM32CubeMX中,如果使用FreeRTOS的话,就不能用系统滴答失踪作为系统时钟,需要额外使用某个定时器作为系统时钟。
例如我使用了FreeRTOS + TIM14;那么在跳转前必须关闭TIM14的中断。否则会程序跑飞。
另一种方法就是你可以关闭所有的中断再进行跳转。
像类似这种跳转,从某个区域执行跳转到另一个区域执行代码,运行失败的基本都是中断问题。
在跳转前所有用到的中断应该关闭,恢复外设默认功能状态。
在STM32CubeMX中,如果使用FreeRTOS的话,就不能用系统滴答失踪作为系统时钟,需要额外使用某个定时器作为系统时钟。
例如我使用了FreeRTOS + TIM14;那么在跳转前必须关闭TIM14的中断。否则会程序跑飞。
另一种方法就是你可以关闭所有的中断再进行跳转。
相关文章: