目录
STM32F1库函数模板工程创建建博客:STM32笔记1-STM32F1库函数模板工程创建
Keil5软件中新建工程Sample,保存在文件夹模板工程中
然后选择自己实际使用的单片机芯片型号,本开发板使用STM32F407ZGT6
在跳出的对话框不做任何设置,直接Cancel
在工程文件夹中创建5个子文件夹,用来存储工程需要的相关配置文件。
创建工程自动生成的两个文件夹Listings、Objects可以删除,是用来保存编译文件的。后面设置其它文件夹用于存储编译文件就。
固件库中,下面两个文件夹复制
①startup_stm32f40_41xxx.s
②core_cm4.h、core_cm4_simd.h、core_cmFunc.h、core_cmInstr.h
①stm32f4xx.h、system_stm32f4xx.h
②main.c、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h、system_stm32f4xx.c
添加好的工程文件夹
FWLIB文件夹中的src文件夹中的所有文件
(注意:src中的文件也可以根据自己需要比如只用到IO点控制,那么只需要把GPIO的文件夹添加进去即可。这里全部添加进去是方便不管后面什么工程都不用再重复添加,缺点是编译比较慢)
删除stm32f4xx_fmc.c文件(该文件夹是STM32F42、STM32F43单片机用到)
STM32F40_41xxx,USE_STDPERIPH_DRIVER(英文逗号)
将Main中的代码替换为下面的程序
#include "stm32f4xx.h"
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);
}
}
删除31行、144行代码,可以用注释的方式
31行代码注释
144行代码注释
①Translate工程,编译没有错误、没有警告
②然后Build工程
③然后Rebuild生成HEX文件
在工程文件夹Obj中,找到生成的HEX文件
短线冒默认不动就行
USB下载口是以前那种口子大一号的MP3口
参见博客:
STM32F4库函数模板工程和固件库下载链接:
https://download.csdn.net/download/panjinliang066333/88666503
固件库
模板工程