1. 程式人生 > >新建工程模板——基於庫函式

新建工程模板——基於庫函式

   一、新建資料夾,重新命名(你想命名的名字),我這裡命名為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++下也要新增。

這樣我們的工程就建好了