文章目录

  • ​​零、预先准备​​
  • ​​一、创建文件​​
  • ​​二、移植文件资源(基于探索者)​​
  • ​​2.1 USER​​
  • ​​2.2 CORE​​
  • ​​2.3 PWLIB​​
  • ​​2.4 SYSTEM​​
  • ​​2.5 OBJ​​
  • ​​三、添加路径​​
  • ​​3.1 PWLIB​​
  • ​​3.2 CORE​​
  • ​​3.3 USER​​
  • ​​四、设置头文件文件路径和添加全局宏定义标识符​​
  • ​​4.1 头文件文件路径​​
  • ​​4.2 添加全局宏定义标识符​​
  • ​​五、更改.hex存放路径​​
  • ​​六、更改main函数,以及一些其他修改​​
  • ​​七、编译运行​​
  • ​​八、修改系统时钟配置​​
  • ​​关于2.4的SYSTEM添加公用代码​​


说实话,我非常不想这篇文章,因为太长太长了,我看视频写都写了一个下午(虽然我下午一直在摸鱼,啊啊啊啊啊)害,不管了,赶紧开始写吧,不然今晚是写不完了,呜呜呜……

零、预先准备

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者


stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_02


把这个里面的文件放先给下好,我这里是没有光盘的,所以需要从百度网盘上下载好,这里面都是我们需要用到的资源

一、创建文件

首相需要创建文件夹,我这里起名就是​​temp​​ 接着依次创建5个子文件夹

stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_03


stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_04


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_05


第二步应该是temp

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者_06


选择F407ZG(我是探索者)

stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_07

二、移植文件资源(基于探索者)

2.1 USER

stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_08


stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_09


结果

stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_10


总共是7个

2.2 CORE

stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_11


stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_12


结果

stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_13

2.3 PWLIB

stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_14


这个路径下的inc和src放进PWLIB中就行

2.4 SYSTEM

这里面可以放一些正点原子提供的延时之类

随便找个模板样例,点进去SYSTEM

找到三个

stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_15


复制进去就行了

2.5 OBJ

这里面主要放的是.hex文件,之后会更改路径就行

三、添加路径

stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_16


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_17

3.1 PWLIB

stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_18


进入刚刚建的文件夹,把src里面的都行全选都放进去,点击Add

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者_19


删除这个文件,

注意是 stm32f4xx_fmc.c要删掉,不要删掉 stm32f4xx_fsmc.c

3.2 CORE

stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_20

3.3 USER

懒得截了,流程一样,结果如下

stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_21

四、设置头文件文件路径和添加全局宏定义标识符

4.1 头文件文件路径

stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_22


stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_23

4.2 添加全局宏定义标识符

务必小心!务必准确!!!

​STM32F40_41xxx,USE_STDPERIPH_DRIVER​

stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_24


放到这个里面!

五、更改.hex存放路径

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者_25


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_26

六、更改main函数,以及一些其他修改

更改main函数,如下

#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);

}
}

删除

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者_27


stm32f407探索者开发板(二)——新建工程(基于固件库)_固件库_28


删除这两行就行

七、编译运行

stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_29

完美!

八、修改系统时钟配置

这个会4.3讲到

stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_30


stm32f407探索者开发板(二)——新建工程(基于固件库)_新建工程_31


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_32


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_33

关于2.4的SYSTEM添加公用代码

就是三个文件

stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_34


stm32f407探索者开发板(二)——新建工程(基于固件库)_STM32_35


stm32f407探索者开发板(二)——新建工程(基于固件库)_宏定义_36

再次编译运行

stm32f407探索者开发板(二)——新建工程(基于固件库)_探索者_37


完美!!结束!!

真累,累死了,跟着教程走了一遍,自己又写了一遍,害,不过还行,写完了