因为在SysTick_Handler里面只有freertos时钟加一的osSystickHandler(),而没有hal时钟加一的 HAL_IncTick(),把后者加入就好了
代码如下
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
HAL_SYSTICK_IRQHandler();
/* USER CODE BEGIN SysTick_IRQn 1 */
HAL_IncTick(); //需要加入这个 HAL_Delay() 函数才能跑
/* USER CODE END SysTick_IRQn 1 */
}
或者重新实现Hal_delay()
以为weak本身就可重写
方法很多:
方法一:阻塞 不精准延时 运行NOP指令
方法二:通过一个定时器(TIM 到)