STM32工程編譯後TIM1時鐘變慢的解決

2022-03-08 02:54:22 字數 415 閱讀 6314

最近在專案程式上遇到乙個很奇怪的現象,tim1定時器執行後的時鐘比配置的執行時鐘慢了20多倍,檢查**查不出問題。

上網搜尋,很多人都遇到過這個問題,但都沒有最終解決。有人給出的解決方案是編譯優化的地方預設優化改為level0優化,試過後tim1時鐘正常了,但整個工程執行又出了問題。

也有人給出解決辦法tim_repetitioncounter = 0,試過後發現無效。

我對幾種編譯優化進行了組合嘗試,最後發現當

選擇level(-o1)

勾選split load and store multiple

勾選one elf section per function

這個優化組合可以使tim1時鐘正常,同時工程功能執行正常。

level選擇0或者2都不行

備註:晶元用了gd的,做了超頻

(STM32學習)1 新建工程模版

一 庫函式 1.core下的三個檔案是core cm.c core cm.h starup stmf10x hd.s 拷貝自 d 學習 開發板 精英a盤 資料 1 8,stm32參考資料 1,stm32f1xx韌體庫 stm32f10x stdperiph lib v3.5.0 libraries ...

stm32建立工程時相關檔案說明

core cm3.c 和core cm3.h 功能system stm32f10x.c功能 設定系統時鐘和匯流排時鐘,在實現系統時鐘時要用到pll 鎖相環 這就需要操作暫存器,而暫存器都是以儲存器對映的方式來訪問的,所以該檔案中包含stm32f10x.h這個標頭檔案。stm32f10x.h功能 所有...

STM32部分工程編譯檔案簡介

功能 初始化堆疊指標sp 初始化程式計數器指標 pc 設定堆 棧的大小 設定中斷向量表的入口位址 配置外部 sram 作為資料儲存器 這個由使用者配置,一般的開發板可沒有外部 sram 呼叫 systemini 函式配置 stm32 的系統時鐘 設定 c 庫的分支入口 main 最終用來呼叫 mai...