在移植FreeRTOS的时候,因为使用的是HAL库,HAL库中有使用到滴答定时器,所以在移植完FreeRTOS,在开启FreeRTOS之前若使用HAL_Delay(),则系统会跑到硬件错误,原因可能是未开启FreeRTOS,但滴答定时器已经初始化了,这个时候的滴答定时器的中断已经被FreeRTOS托管,若发生滴答定时器中断,在FreeRTOS未开启的情况下,则会发生错误,直接进入硬件错误;处理方法:HAL库的HAL_Delay使用另外的定时器,不用滴答定时器,并且在FreeRTOS开启之前都不要初始化或使用滴答定时器,这样就可以在FreeRTOS之前或在FreeRTOS中使用 HAL_Delay。PS:FreeRTOS中自动会帮我们配置滴答定时器,前提是移植没有问题。
© 允许规范转载