1. 工程更換不同的STM32芯片
eg:stm32f103rct6 ---->stm32f103c8t6:
1.1. 修改芯片
點擊魔術棒,在出來的菜單欄裏,Device 選項重新選擇芯片
1.2. 修改啓動文件
此處舉例是 RCT6 修改爲 C8T6,因爲 flash 容量大小不一樣,所以需要對應修改啓動文件,如果是 flash 大小相同,此步驟不需要。此處由:startup_stm32f10x_hd.s修改爲startup_stm32f10x_md.s
1.3. 修改全局宏定義
同樣先點擊魔術棒,在菜單欄選擇 C/C++。進而修改全局宏定義。此處:STM32F10X_HD–>STM32F10X_MD
1.4. 重新添加FLASH
此處是將大容量的 RCT6 修改爲中容量的 C8T6,所以我們需要重新添加 flash。
至此,一個工程就從 RCT6 修改爲 C8T6 ,編譯下載即可。
2. 外部晶振的修改
此處舉例:8M---->12M
常見的STM32硬件外部用的也是 8M ,今天一個新板子原理圖畫的是25M,實際焊接的是 12M,找了一下午問題,最後發現是晶振引起的問題。遇到問題,除了多思考總結,也要在網上查找資料,很多問題我們的前輩已經遇到並且解決了,這樣我們學習的過程也會輕鬆一些。
2.1. 修改 stm32f10x.h 文件
默認是8M,修改爲12M。
2.2. 修改 system_stm32f10x.c 文件
默認是9倍頻,最大 72MHz。修改爲:RCC_CFGR_PLLMULL6。
注:晶振不一樣,一個很直觀的問題就是串口輸出亂碼,下午找了半天BUG。此博客後面有不錯的技巧還會繼續補充。