正点原子 10 新建工程模板(固件库)

1,  新建一个文件夹   (Template)  用来存放工程的全部文件

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

   分不同类型的工程文件

3,  打开Keil,点击Keil 的菜单:Project –>New Uvision Project  保存工程在USER文件夹下,名为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_simd.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.  删掉USER 下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

    因为晶振是8M的

18.  修改USER→stm32f4XX_it.c→stm32f4xx.h的123行由((uint32_t)25000000) 改成 ((uint32_t)8000000)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值