Keil5-建立第一個STM32工程


此致:特別感謝作者Lomo-chen所寫的文章給我的幫助,我嘗試做了一下,成功了,今天整理一下。

一、建立文件夾:

1、在桌面或其他盤建立一個文件夾,此處名稱為Test,用來存放工程程序。

2、在Test文件夾下,建立User、Driver、List、Output三個文件夾。

     --  User (存放main函數文件)

     -- Driver (存放驅動函數文件)

     -- List  (存放編譯文件)

     -- Output  (存放輸出文件) 

二、創建工程

1、打開Keil軟件,選擇Project ---> New μVision Project...--> 輸入文件名 TestDemo  --> 點擊保存。彈出如下:

2、選擇自己需要的芯片型號,此處為STM32F103C8,點擊OK,自動彈出如下:

 

3、在對應選項中選擇所需的必選項,即勾選:

     -- CMSIS 下 的 CORE 項

     -- Device 下的 Startup 項

     -- Stdperiph Driver 下的 RCC 和 framework 項

     剩下的外設驅動先不添加,在程序編寫的時候,按需求添加。(為了方便,大家還是在這個添加最好,省的麻煩)

 

4、點擊界面中魔術棒右邊的按鈕,即如下按鈕:

5、點擊之后,彈出的窗口中,可以修該工程名,並且可對程序進行分組分類:

     --  Project Targets   工程名,默認為Target 1,此處修改為 FenTest

     -- Groups  分組分類,默認為 Source Group 1 ,此處修改為四個文件:User、Core、Driver、Config

6、點擊OK,界面顯示如下:

      -- User 只存放 main.c 文件(說是這么說,其實隨便啦~)

      -- Core 存放各種中斷處理函數

      -- Config 用來存放MCU的外設配置初始化函數

      -- Driver 用來存放MCU和其他芯片的驅動函數

7、 鼠標點擊User,右鍵選擇Add New Item to Group ‘User’:

8、依次添加各個目錄下所需的.c文件和.h文件

  

9、點擊魔術棒,點擊Output選項,勾選Create HEX File ,

     點擊Select Folder for Objects 選項,在彈出的界面中設置好相應文件的輸出路徑 Output:

10、在C/C++ 選項中,如下圖填寫,並將相應文件包含進來:

        注意:Define項不用填寫任何東西。include paths 項一定要到STM32F103C8這個子目錄,即:

        .\Driver;.\User;.\RTE;.\RTE\Device;.\RTE\Device\STM32F103C8

11、上述過程只是創建了一個框架,接下來,我們創建文件:

(1)上面說了在user創建了main.c和main.h文件

(2)在Config文件夾下創建config.c和config.h文件

(3)在main.c文件中,包含 #include “config.h”     #include “stm32f103x.h” 

(4)打開config.h,添加以下代碼:

#ifndef __CONFIG_H
#define    __CONFIG_H
#include "stm32f10x.h" //記得添加此頭文件,因為config.c用到GPIO相關函數等
void LED_GPIO_Config(void);
void Delay_ms(u16 time);
#endif

(5)打開config.c文件,添加以下代碼:

#include "config.h"

/***************  配置GPIO*******************/
void LED_GPIO_Config(void)    
{
  //配置PC13引腳
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure); 
  GPIO_SetBits(GPIOC, GPIO_Pin_13 );    

  //配置PB14引腳     
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;    
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_SetBits(GPIOB, GPIO_Pin_14 );
}

//毫秒級延時函數
void Delay_ms(u16 time)
{
    u16 i=0;
    while(time--)
    {
        i=12000;
        while(i--);
    }
}

(6)在main.c文件中添加如下代碼:

#include "config.h"
#include "stm32f10x.h"
int main()
{
    //初始化GPIO
    LED_GPIO_Config();
    
    while (1){
        
        GPIO_ResetBits(GPIOC,GPIO_Pin_13);//
        Delay_ms(800);        
        GPIO_SetBits(GPIOC,GPIO_Pin_13);//
        Delay_ms(800);        
        
        GPIO_ResetBits(GPIOB,GPIO_Pin_14);//
        Delay_ms(800);        
        GPIO_SetBits(GPIOB,GPIO_Pin_14);//
        Delay_ms(800);        
    }                                
}

(6)忘了一點,因為前面我們沒有在 Stdperiph Driver項中添加 GPIO外設驅動,此處要添加:

 

(7)保存,點擊編譯。 這時候:

        rte_components.h會自動包含進項目

        stm32f10x_config.h也不用手動修改。  (全自動,非常方便!)

 12、燒錄文件:

(1)此處使用ST-Link V2下載器

(2)點擊魔術棒,點擊Debug,在use中選擇ST-Link Debugger 

(3)點擊旁邊的Setting,ort 選擇 sw

(4)點擊Flash Download,點擊Add,選擇STM32F10x Med-density  Flash  128K .....

(5)點擊下載圖標,即可下載

13、觀察開發板的gpio口的led狀態:

  現象:PC13  PB14有規律的依次閃爍。

       這樣就成功搭建好工程,並且點亮LED燈!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM