stm32f103rct6的代碼移植到stm32f103c8t6

        目前市面上見的較多的STM32單片機一般都是開發板,由於這些開發板又很豐富的例程,因此使用起來非常方便,但是我們實際在應用的時候,有時候可能用不了那麼多的管腳,因此會造成管腳資源的浪費,而且管腳多的成本也會很高。同時這些STM32單片機的基礎的庫基本都是一樣的,因此理論上來說,應該是可以進行移植的,博主今天來分享一下代碼移植的方法。本次採用stm32f103rct6的代碼移植到stm32f103c8t6。其他STM32單片機之間的移植方式和這個類似,大家要學會舉一反三。

        博主在做一些項目的實際過程中,通過自己的摸索,慢慢找到了移植方法,本次通過將正點原子stm32rct6的串口例程移植到stm32f103c8t6中。

        1. 打開工程之後點擊品旁邊的魔術棒,之後選擇decice將單片機類型選擇爲STM32F103C8.如下圖所示

 

 2.在Target選項卡中,將晶振改成板子上的晶振大小,我的是8MHZ,因此改8。如下圖所示

3.在C/C++選項卡中,將Define從STM32F10X_HD,USE_STDPERIPH_DRIVER改成 STM32F10X_MD,USE_STDPERIPH_DRIVER  。因爲咱們的c8t6是middle型的單片機。有時候在碰到一個沒用的單片機,不知道怎麼改的時候,我覺得可以去找一個 哪一個單片機的例程,把他改成裏邊對應的 就可以了。修改過後如下圖所示

4.在Debug 選項中,修改對應的下載器的設置,我這裏用的是STLINK,選擇之後,點擊settings, 當然選擇SW模式進行調試,之後在settings的Flash Download選項卡內,可以看到當前的programming algorithm爲High-denity的高密度的內存(也就是閃存),但是我們的c8t6是middle中密度的內存,因此我們將已有的remove移除,之後add添加一個新的正確的內存即可。這個時候有可能會遇到一個很尷尬的問題,就是沒有我們要找的算法,此時我們就需要去官網下載一個文件即可。http://www2.keil.com/mdk5/legacy

下載安裝之後即可發現多了好多,選擇即可。選擇好的如下圖所示:

 

 

 5.之後需要將啓動文件由startup_stm32f10x_md.s修改爲startup_stm32f10x_hd.s即可。先將startup_stm32f10x_md.s右鍵移除,之後雙擊CORE添加startup_stm32f10x_hd.s即可。修改完成的圖如下:

 6.此時編譯工程下載之後,程序已經可以運行,但是有的時候會出現始終變慢的情況,需要在主函數裏邊加一個SystemInit();

即可。加完的結果如下:、

此時移植完成,通過STLINK可以下載到stm32c8t6單片機上,並順利運行。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章