開始的開始

很早前買的stm32 f103c8tb最小系統(tǒng)板一直在吃灰,今天決定拿出來搞搞。

下載程序可以有三種方式,這里介紹ISP方式,為什么叫ISP我覺得沒有道理,還不如叫串口燒寫,四根線就夠了,還需要一個cp2012usb2uart。flansh loader燒寫的時候需要將boot模式切換到從system memory啟動,具體操作起來就是將boot的引線開關(guān)換個檔。

利用cp2012下載程序到f103c8tb最小系統(tǒng)板


boot模式的細節(jié)可以查datasheet,往深了討論又關(guān)乎到地址空間的分配。


address space

flashloader是往0x 0800 0000的地址寫程序,這個時候需要調(diào)到boot from system memory。


flash loader


大前提實在window7下。開發(fā)環(huán)境,一開始折騰了很久命令行編譯,雖然這條路很酷,不過的確充滿艱難,實在是不推薦。不過記錄下失敗過程,先是想用eclipse c++ CDT gnu-arm-ebai ,后來弄著弄著發(fā)現(xiàn)可以連eclipse都不用,直接gnu-arm-eabi cygwin。后來實在是坑太多,無奈放棄。

選擇用keil的時候,一開始循著百度出來的很多教程,折騰了keil4 + stm標準外圍庫,最后發(fā)現(xiàn)弄個led燈都把我給弄死了,時間從早上10點開始弄到現(xiàn)在都晚上7點多了,還是沒有放棄,因為期間發(fā)現(xiàn)keil編譯老是報 c++ compil 意外退出,查百度說是路徑有中文,重裝了系統(tǒng),用戶名設(shè)置為全英文。

下載keil5+keil5 pack。弄了會兒才發(fā)現(xiàn)keil從5開始就提供了一種更為優(yōu)雅的庫提供方式,利用可執(zhí)行的pack文件即可輕松管理標準外圍庫的調(diào)用。不過到這里又遇到頭文件調(diào)用的坑,一開始看著有GPIO_stm32f10x.c,便以為頭文件應(yīng)該是 GPIO_stm32f10x.h,雖然的確有這個頭文件,但是這個頭文件里的api并不是用來用戶調(diào)用的,后來查到一篇別人寫的跑馬燈示例程序,拿過來可以用,留意才發(fā)現(xiàn),系統(tǒng)供用戶調(diào)用的接口都在pack目錄里device\stdperiph\inc\..而且命名規(guī)則也變成了stm32f10x_gpio.h

成功點亮。


keil5點亮gpio燈
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容