遍历文章无数, 都没找到根因. https://www.baidu.com/s?wd=stm32%20sprintf%20%E6%AD%BB%E6%9C%BA
最终在 STM32CubeIDE FreeRTOS 使用 printf 进入 HardFault_Handler 找到了根源, 记录一下.
创建多个任务,并在任务中使用 printf
串口打印,程序会进入 HardFault_Handler
中断,经查,是因为任务栈分配的太小导致的,STM32CubeIDE
中的 FreeRTOS
默认堆栈大小为 128
,更改为 512
即可。