最近在學stm32,剛剛通過查詢大量的資料,以及無數次的犯錯和解決後,終於知道如何建立一個新工程以及配置;
1、首先建立一個檔案夾隨便取個名字,比如每個開始學stm32的人要點亮第一盞燈,我們就以led為檔案夾名吧,然後雙擊led檔案夾,在建立四個檔案夾,分別命名為lib、cmsis、user、和output
2、在ST官網中下載的最新版的V3.5韌體庫中,點擊Libraries->CMSIS->CM3->CoreSupport ,把裡面的core_cm3.c和core_cm3.h 檔案複製到我們剛剛建立的新檔案夾cmsis中,然後點擊Libraries->CMSIS->CM3->DeviceSupport->ST->STM32F10X 中,把stm32f10x.h 、system_stm32f10x.c、system_stm32f10x.h和startup開機檔案夾複製到
cmsis中,然後點擊Libraries->STM32F10X_StdPeriph_Driver 中,把裡面的 inc 和 src 檔案夾複製到剛剛建立的 lib 檔案夾中,最後點擊 Projiect->STM32F10X_StdPreriph_Template 中,把裡面的 stm32f10x_conf 、stm32f10x_it.c 、stm32f10x_it.h這三個檔案加入到剛剛建好的user檔案夾中
3、開啟keil4軟體 ,點擊Projiect->NewuVisionProjiect 建立一個工程,出現儲存對話方塊,取名為led點擊儲存在user檔案夾中,然後會出現一個讓你選擇目標晶片的對話方塊讓你選擇目標晶片,我用的晶片是stm32f103rbt6,選好之後會出現一個讓你選擇是否添加開機檔案的對話方塊,這裡我們選擇“否”,這樣一來就需要我們自己添加開機檔案,這個我將會在後面說明;
4、點擊,點擊最上面的三個選項條中的Project Components選項,然後會出現三個矩形框,這個是讓你添加檔案的,便於讓你管理檔案,我們選擇中間那個Groups框,添加ustart、lib、cmsis、和user四個檔案容器,然後在第三個方框Files中,是讓你在Groups的每個檔案容器中添加檔案的,首先,我們要添加的是開機檔案夾 startup_stm32f10x_md.s (此檔案在cmsis 檔案夾中的 startup檔案夾中的arm檔案夾中)關於開機檔案,我在這裡不再解釋為什麼用startup_stm32f10x_md.s而不是startup_stm32f10x_hd.s ,有興趣的可以百度一下其中的差別, 然後我們在 lib中添加stm32f10x_gpio.c 和stm32f10x_rcc.c(注意:這兩個檔案在lib夾中的src檔案夾中) ,在cmsis中添加core_cm3.c、system_stm32f10x.c檔案,在user中添加stm32f10x_it.c檔案,如果寫了main檔案的話也可以添加,最後點擊OK;
5、點擊魔術棒工具Target,進去之後我們點擊Output然後點擊,選擇我們剛剛建立的output檔案夾,然後點擊Listing ,進去之後點擊Select Folder for Listings這個選項,還是選擇output檔案,然後點擊 c/c++ 這個選項,在裡面的Define中填入STM32F10X_MD,USE_STDPERIPH_DRIVER,如果晶片記憶體是進階的話就填STM32F10X_HD,USE_STDPERIPH_DRIVER,然後點擊下面Include Paths後面的框,進入之後添加三條路徑,每天路徑需要添加一個空白條,這三個路徑是led\cmsis ; led \lib \inc ; led \user,添加完成中後就基本上完成的一大部分,最後一個是在Debug和Utilitise中配置下載的所需的設定點擊Debug,進去之後點擊表徵圖中的下拉鍵選擇Jlink(如果沒有這幾個字母,則選擇包含Jlink這個字母的選項),然後點擊setting,進去之後先在Debug中的Adapter中點中下拉框,選擇Jlink,然後在Flash Download中點擊ADD,添加STM32F10X Med-density Flash,然後點擊OK;最後在Utilitise中選中 Use Target Driver for Flash Programming 在下拉框中選擇Jlink,點擊OK,這個建立工程就算大功告成了。。。
6、如果你覺得按照以上步驟還沒完成建立工程,就請百度一下,最有可能的是第5步出錯了,如果成功了,就請點個贊吧。。。。。