1. 程式人生 > 其它 >STM32新建模板之韌體庫

STM32新建模板之韌體庫

一、新建專案資料夾

  1. 在桌面建立專案資料夾,用於存放工程,命名為“stm32f10x_project”

  2. 在專案資料夾中建立3個資料夾,分別命名為:CMSIS、OUTPUT、STM32F10x_FWLib、USER,並在OUTPUT檔案下建立Objects、Listings檔案,在CMSIS檔案下建立startup檔案


    名稱 作用
    CMSIS 系統檔案
    OUTPUT 編譯生成的相關檔案
    STM32F10x_FWLib stm32相關原始碼和標頭檔案
    USER 使用者程式碼
  3. 建立README檔案
    建議每個專案都建立README.txt或README.md檔案,用於說明專案的相關資訊,便於別人閱讀,建議養成良好的習慣。

二、拷貝專案檔案

通過購買開發版時提供的專案案例進行拷貝,這裡以“STM32F103C8T6例程”為例

  1. 拷貝core_cm3.c、core_cm3.h、stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h檔案到CMSIS目錄下

  2. 拷貝啟動檔案“startup_stm32f10x_hd.s”到CMSIS\startup目錄下

  3. 拷貝stm32相關原始碼和標頭檔案,將案例中FWlib檔案下的inc、src資料夾拷貝到STM32F10x_FWLib目錄下

  4. 將案例中USER檔案下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h檔案拷貝到USER目錄下

三、建立工程專案

  1. 開啟Keil軟體,建立專案,專案名為STM32F10x_Temp


  2. 新增GROUP,新增四個GROUP,並改名為startup、STM32F10x_FWlib、CMSIS、USER


  3. 為每個GROUP新增檔案

  • startup,將檔案startup_stm32f10x_hd.s新增到startup下
  • STM32F10x_FWlib,將檔案stm32f10x_rcc.c、stm32f10x_gpio.c新增到STM32F10x_FWlib下
    注意:這裡新增需要的庫檔案即可,因為我只用到時鐘和GPIO庫檔案,所以我只添加了兩個檔案,當然也可以全部新增
  • CMSIS,將檔案core_cm3.c、system_stm32f10x.c檔案新增到CMSIS下
  • USER,將檔案main.c、stm32f10x_it.c檔案新增到USER下
  • 新增完成後如下圖所示:
  1. 設定編譯檔案的輸出路徑
  • Objects輸出設定

  • Listings設定
  1. 設定預設編譯版本

  2. 設定標頭檔案路徑

  3. 設定編譯器
    在Define中填入內容:STM32F10X_HD,USE_STDPERIPH_DRIVER

四、編譯

  1. 將main.c檔案中的內容全部刪除,替換成一下內用
#include "stm32f10x.h"

 /***************  配置LED用到的I/O口 *******************/
void LED_GPIO_Config(void)	
{
  GPIO_InitTypeDef GPIO_InitStructure;
	
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能PC埠時鐘  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;	//選擇對應的引腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);  //初始化PC埠
  GPIO_SetBits(GPIOB, GPIO_Pin_12 );	 // 關閉LED
}

void Delay(__IO u32 nCount)
{
  for(; nCount != 0; nCount--);
} 

int main(void)
{
		LED_GPIO_Config(); //LED 埠初始化 
		while (1)
		{
				GPIO_SetBits(GPIOB,GPIO_Pin_12);
				Delay(0x200000);
				GPIO_ResetBits(GPIOB,GPIO_Pin_12);
				Delay(0x200000);
		}
		
}


  1. 編譯程式

  2. 編譯完成後下載執行,觀察現象。到此專案模板已經建立完成,以後需要編寫程式時只需要使用這裡建立的模板直接開發即可。

參考文獻

stm32新建立一個工程:https://blog.csdn.net/weixin_42490436/article/details/90751687

如本部落格的內容侵犯了你的權益,請與以下地址聯絡,本人獲知後,馬上刪除。同時本人深表歉意,並致以崇高的謝意! [email protected]