在中断回调函数中使用rt_thread_mdelay()产生了奇怪的效果。
解决方法:
1.删除./libraries/HAL_Drives/drv_common.c 里的HAL_Delay空函数。
2.将rt_thread_mdelay()
改为HAL库的延时函数HAL_Delay()
究其原因是rt_thread_mdelay本质上是让进程休眠。
而中断回调函数不属于任何一个进程。
注意事项:
使用HAL延时本质上是使程序空转,可能会造成系统的调度器失效,一般情况建议不要使用。