您的位置:首页 > 其它

正点原子 10 新建工程模板

2017-01-02 22:20 441 查看
1,  新建一个文件夹   (Template)  用来存放工程的全部文件

2,        在Template文件夹中再建五个文件夹:CORE    FWLIB  OBJ  SYSTEM  USER 用来划

   分不同类型的工程文件

3,  打开Keil,点击Keil 的菜单:Project –>New Uvision Project  保存工程名为Template 选择相应的CPU.

   把 Manage Run-Time Environment 对话框 cancel 掉

4.        打开官方固件库包,定位到目录

   STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver 下面

   将目录下面的
src  inc  文件夹 copy 到我们刚才建立的 FWLIB文件夹下面

5.  定位到目录

   \STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

   下面,将文件startup_stm32f40_41xxx.s复制到CORE
目录下面。

   定位到目录\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Includ,将里面 的四个头 文件:

           core_cm4.h    
core_cm4_sim
4000
d.h     core_cmFunc.h      core_cmInstr.h 同样复制到 CORE目录下面

6.        STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Includ 里面的2 个头文件

   stm32f4xx.h     system_stm32f4xx.h 复制到USER目录之下

7.        进入目录\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates 将目录下面的

    5 个文件 main.c      stm32f4xx_conf.h       stm32f4xx_it.c       stm32f4xx_it.h
      system_stm32f4xx.c 复制到

    USER 目录下面

8.         右键点击 Target1,选择 Manage Project Items  ,把 Target1  改为  Template 在Groups中添加 CORE

    FWLIB OBJ SYSTEM USER,  在 FWLIB 中添加 FWLIB\src    

    下的所有c文件(stm32f4xx_fmc.c除外,这个不用添加)

9.  在CORE 中添加 startup_stm32f40_41xxx.s  USER 中添加 main.c  stm32f4xx_it.c 

   system_stm32f4xx.c

10. Project –>Options for Target 'Template'  –>C/C++  –>
Include Paths 添加 .h 头文件的路径.凡是需要用到的

  头文件的路径都要添加

11. 进入 C/C++选项卡,然后在 Define输入框连输入全局宏定义:STM32F40_41xxx和 USE_STDPERIPH_DRIVER

   他们之间是用逗号隔开的 即   STM32F40_41xxx,USE_STDPERIPH_DRIVER

12.  在Project –>Options for Target 'Template'  –>Output 中 勾选 Create
HEX File ,在Select Folder for 

             Objects
中指定新建文件夹OBJ的路径.

13.  重写main.c的内容,或把下面代码覆盖原来的内容

#include "stm32f4xx.h"

//ALIENTEK 探索者STM32F407开发板 实验0
//STM32F4工程模板-库函数版本
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @ALIENTEK

void Delay(__IO uint32_t nCount);

void Delay(__IO uint32_t nCount)
{
while(nCount--){}
}

int main(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOF, &GPIO_InitStructure);

while(1){
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
Delay(0x7FFFFF);
GPIO_ResetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
Delay(0x7FFFFF);

}
}


14.  删掉stm32f4xx_it.c 中的 #include "main.h"  32行   TimingDelay_Decrement(); 144行

15.  在build  Toolbar 中按 Build(F7) 就可以编译并生成HEX文件了.

  

  再补充完善一下SYSTEM文件夹

16.  随便找一个正点原子的工程文件,把里面的SYSTEM文件夹覆盖我们所创建的SYSTEM文件夹.把里面的文件

   导入工程中,再配置头文件的位置,再编译一下就可以了!!!

17.  把USER下面的system_stm32f4xx.c  文件的316行由 #define PLL_M      25 改成 #define PLL_M      8

18.  修改USER→stm32f4XX_it.c→stm32f4xx.h的123行由((uint32_t)25000000) 改成 ((uint32_t)8000000)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: