用SysTick做延时,结果别的外设都卡死了
延时函数没啥问题,就是调完发现串口、ADC都不正常,可能是阻塞时间太长。ST写的HAL_Delay其实就是个死循环 你是不是用了while循环延时?那肯定卡。 SysTick本质是阻塞式的,建议换成定时器。 如果用RTOS,SysTick会被系统抢走。 看看有没有进SysTick中断,别只是delay。 HAL_Delay卡主所有任务,注意别在中断里用。 定时器做个非阻塞的延时更灵活。 我干脆写了个基于定时器的计数器延时器。 如果要用DMA,SysTick这种阻塞很难配合。 你搞个状态机,轮询方式延时更清爽。
页:
[1]