我们有了rtos,为什么还是会去使用HAL本身得延时函数呢?是因为一般我们使用比如USB库,自动生成得这些里面还是使用HAL_Delay函数来进行延时,一般如果使用STM32官方推荐得FREERTOS就不用担心这个问题,因为官方已经直接适配好了,带RTOS得USB库。而我们使用得RTThread-Nano是没有适配得。所以当我使用得时候,发现一直卡死在这里
其中tickstart得值一直为0。而后翻看到如下帖子 https://www.stm32cube.com/question/353 才知道,是rtos得时钟和hal库得时钟不一致导致得,而我们操作系统自己在borad.c中实现了SysTick_Handler函数作为我们系统得时钟,所以我们在此函数里面加入HAL得时钟
重新编译,问题解决。