新建工程的步驟
- 建立工程文件夾,Keil中新建工程,選擇型號
- 工程文件夾里建立Start、Library、User等文件夾,復制固件庫里面
- 的文件到工程文件夾
- 工程里對應建立Start、Library、User等同名稱的分組,然后將文件
- 夾內的文件添加到工程分組里
- 工程選項,C/C++,IncludePaths內聲明所有包含頭文件的文件夾
- 工程選項,C/C++,Define內定義USE_STDPERIPH_DRIVER
- 工程選項,Debug,下拉列表選擇對應調試器,Settings,Flash
- Download里勾選Reset and Run
下面來說一下具體步驟:
一、新建工程
使用庫函數的方式,需要準備一個STM32 庫函數的壓縮包
新建一個基于標準庫的工程
新建一個文件夾叫工程模板放本次項目
固件庫獲取:
https://pan.baidu.com/s/1bRC6MWtC7jxyKTCUmBCnRQ?pwd=v4tw
然后找到:
固件庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3
\DeviceSupport\ST\STM32F10x\startup\arm下的就是STM32的啟動文件
STM32程序就是從啟動文件開始執行的。
將這些文件都拷貝到工程模板中,但是這樣全放進去太亂了,可以新建一個文件夾叫start。
返回到STM32F10x目錄
stm32f10x.h 是用來描述STM32有哪些寄存器和他對應的地址的。
system_stm32f10x.c 和system_stm32f10x.h 是用來配置時鐘的
STM32主頻72MHZ,就是system文件里的函數配置的。
將這三個文件復制下來也粘貼到start文件夾下。
這兩個cm3-(Cortex-M3)文件就是內核的寄存器描述.當然他還帶了一些內核的配置函數,所以多了個:c文件,我們把它倆一并復制下來也粘貼到start文件夾下。
到此為止工程的必要文件就復制完成了。
返回Keil軟件
雙擊start
點擊All files
選擇啟動文件
按住CTRl選擇這三個然后點擊Add
然后點擊close。
這個圖標代表只讀文件。
最后在工程選項里添加上這個文件夾的頭文件路徑,否則軟件找不到.h文件
點擊
添加main函數看工程是否可行。
進入工程模板文件夾,新建文件夾叫User.
右鍵添加組
改名為User
右鍵添加新文件
界面右擊
然后編寫一個main函數,這里注意main函數是一個int型返回值,void參數的函數。還有文件的最后一行必須要是空行,要不然會報警告。
#include "stm32f10x.h" // Device headerint main(void)
{while(1){}
}
點擊構建,編譯并建立工程
二、兩種電燈方法
寄存器
#include "stm32f10x.h" // Device headerint main(void)
{RCC->APB2ENR = 0x00000010;//打開GPIOC的時鐘GPIOC->CRH = 0x00300000;//GPIOC->ODR = 0x00000000;//亮GPIOC->ODR = 0x00002000;//滅while(1){}
}
庫函數
新建庫文件夾
misc是內核的庫函數,其他的是內核外的外設庫函數。
全部復制到Library中。
這些是庫函數的頭文件件全部復制到Library中。
這三個復制到工程的User下。
宏定義方法:
滑到8296行
庫函數的工程建法: