新建工程模板——基於庫函式
一、新建資料夾,重新命名(你想命名的名字),我這裡命名為Template
二、在上一步新建的資料夾中再新建資料夾命名為USER,(程式碼工程都放在這個資料夾下面)CORE,STM32F10x_FWLIB,OBJ資料夾。
三、開啟MDK選單:Project->New Uvision Project,然後將目錄定位到剛才建立的資料夾Template之下,命名為Template.
之後會跳出來一個介面,
點選STMicroelectronics左邊的加號,選擇STM32F1 Series->STN32103->STM32F103RC(我這裡用的是mini版)
點選OK,會跳出下面這個介面
點選Cancel就OK。
四、在Target 1上右擊,選擇Manage Project Items......
左邊改名為Template,右邊改為USER,CORE,FELIB(右邊只有一個,點選X左邊的新建去新建幾個).
五、1、在STM32韌體庫中選擇ALIENTEK MiniSTM32 V3.0開發板資料\8,STM32參考資料\1,STM32F1xx韌體庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver,將裡面的inc和src兩個檔案複製到剛才新建的資料夾的FWLB的資料夾下面。
2、在STM32韌體庫中選擇ALIENTEK MiniSTM32 V3.0開發板資料\8,STM32參考資料\1,STM32F1xx韌體庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport,將兩個檔案複製到新建資料夾Template的CORE資料夾下面。然後再把ALIENTEK MiniSTM32 V3.0開發板資料\8,STM32參考資料\1,STM32F1xx韌體庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm裡的hd.s檔案複製到CORE中
3、在STM32韌體庫中選擇ALIENTEK MiniSTM32 V3.0開發板資料\8,STM32參考資料\1,STM32F1xx韌體庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x將三個檔案複製到USER中,
再在ALIENTEK MiniSTM32 V3.0開發板資料\8,STM32參考資料\1,STM32F1xx韌體庫\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template選擇,main,stm32f10x_it三個檔案複製到USER中
六、在MDK中,左側右擊選擇Manage Project Items....,向三個資料夾中新增檔案,點選FWLIB選擇Add File....,在對應目錄下選擇src資料夾裡的全部檔案進行新增,USER下的三哥檔案進行復制,在CORE中,選擇檔案型別為All,選擇.c和.s檔案新增。新增完成後點選OK。
點選魔術棒,選擇output,將三個框全部打鉤。點選OK。點選Select Folder for Objects....,將資料夾中的OBJ檔案選定
再次點選魔法棒,選擇c/c++在define中新增STM32F10X_HD,USE_STDPERIPH_DRIVER,(中間逗號)。
點選魔法棒,選擇c/c++在下面的include Paths中選擇以下幾個進行新增。
點選USER下的main函式,清空,並將下面這段程式碼複製進去:
#include "stm32f10x.h" void Delay(u32 count) { u32 i=0; for(;i<count;i++);
} int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //使能PA,PD埠時鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 埠配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推輓輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根據設定引數初始化GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 輸出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 埠配置, 推輓輸出 GPIO_Init(GPIOD, &GPIO_InitStructure); //推輓輸出 ,IO口速度為50MHz GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 輸出高 while(1) { GPIO_ResetBits(GPIOA,GPIO_Pin_8); GPIO_SetBits(GPIOD,GPIO_Pin_2); Delay(3000000); GPIO_SetBits(GPIOA,GPIO_Pin_8); GPIO_ResetBits(GPIOD,GPIO_Pin_2); Delay(3000000); } }
在韌體庫中ALIENTEK MiniSTM32 V3.0開發板資料\4,程式原始碼\2,標準例程-V3.5庫函式版本\2,標準例程-V3.5庫函式版本\ALIENTEK MINISTM32 實驗0-1 Template工程模板-新建工程章節使用複製system資料夾到Template檔案中,並將其新增到MDK中注意在魔法棒的c/c++下也要新增。
這樣我們的工程就建好了