“一般是时钟中断外设 ”正解~~~不过stm32初始化之后外设基本全关了。。用哪个要先开相应时钟……
设定合适的编译优化选项。
STM32正常运行时对程序运行效率要求不是很高,但是在中断中要求快进快出,尤其是中断数量多且中断里处理的任务较多时,对程序的运行时间及效率要求比较苛刻,可以从以下几点优化程序:设定合适的编译优化选项
Optimization level -O0
-O0禁用所有优化。使用-O0可以加快编译和构建时间,但是生成的代码比其他优化级别要满。与其他优化级别相比,-O0的代码大小和堆栈使用率明显要高。生成的代码与源代码密切相关,但生成的代码要多得多,包括死代码。
Optimization level -O1
-O1支持编译器中的核心优化。因为这个级别比-O0提供了更好的代码质量,因此它能提供了很好的调试体验。堆栈的使用也在-O0的基础上有所提高。为了获得良好的调试体验,Arm推荐使用此选项。
stm32复位时间不长。stm32的软复位本质上就是硬件复位,会拉低rest脚,stm32复位的时间是可以在瞬间就完成的。
可能是你启动电路有问题,stm32如果启动时电压太低,系统运行就会很慢。
可以调度 清狗 可以单独建立任务 由系统调度完成。 编写代码的时候尽量不写死等的程序。用状态机写软件
本文标签:程序太复杂stm32运行时间过长