STM32F4系列单片机库函数模板工程创建

news2024/11/20 4:42:57

目录

一、工程配置

1、新建工程

2、芯片选择

3、工程子文件夹创建

(1)FWLIB文件夹添加文件

(2)CORE文件夹添加文件

(3)USER文件夹添加文件

4、工程设置

(1)工程中添加文件夹

(2)工程文件夹中添加配置文件

①FWLIB文件夹添加文件

②CORE文件夹添加文件

③USER文件夹添加文件

④文件添加好以后

(3)编译链接的文件夹

(4)添加全局宏定义标识符

(5)设置保存编译文件的文件夹

(6)设置生成HEX文件

5、程序设置

(1)Main中程序修改

(2)stm32f4xx_it.c文件修改

(3)程序工程编译、HEX生成

二、下载设置

1、开发板设置

2、打开烧录程序

3、烧录,开始编程、下载到PLC中

4、JLINK下载和调试

三、固件库和模板工程打包下载

1、下载链接

2、固件库和模板工程文件夹展示


STM32F1库函数模板工程创建建博客:STM32笔记1-STM32F1库函数模板工程创建

一、工程配置

1、新建工程

Keil5软件中新建工程Sample,保存在文件夹模板工程中

2、芯片选择

然后选择自己实际使用的单片机芯片型号,本开发板使用STM32F407ZGT6

在跳出的对话框不做任何设置,直接Cancel

3、工程子文件夹创建

在工程文件夹中创建5个子文件夹,用来存储工程需要的相关配置文件。

创建工程自动生成的两个文件夹Listings、Objects可以删除,是用来保存编译文件的。后面设置其它文件夹用于存储编译文件就。

(1)FWLIB文件夹添加文件

固件库中,下面两个文件夹复制

(2)CORE文件夹添加文件

startup_stm32f40_41xxx.s

core_cm4.hcore_cm4_simd.hcore_cmFunc.hcore_cmInstr.h

(3)USER文件夹添加文件

stm32f4xx.hsystem_stm32f4xx.h

main.cstm32f4xx_conf.hstm32f4xx_it.cstm32f4xx_it.hsystem_stm32f4xx.c

4、工程设置

(1)工程中添加文件夹

添加好的工程文件夹

(2)工程文件夹中添加配置文件

①FWLIB文件夹添加文件

FWLIB文件夹中的src文件夹中的所有文件

注意:src中的文件也可以根据自己需要比如只用到IO点控制,那么只需要把GPIO的文件夹添加进去即可。这里全部添加进去是方便不管后面什么工程都不用再重复添加,缺点是编译比较慢)

删除stm32f4xx_fmc.c文件(该文件夹是STM32F42、STM32F43单片机用到)

②CORE文件夹添加文件

③USER文件夹添加文件

④文件添加好以后

(3)编译链接的文件夹

(4)添加全局宏定义标识符

STM32F40_41xxx,USE_STDPERIPH_DRIVER(英文逗号)

(5)设置保存编译文件的文件夹

(6)设置生成HEX文件

5、程序设置

(1)Main中程序修改

将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);
	
	}
}

(2)stm32f4xx_it.c文件修改

删除31行、144行代码,可以用注释的方式

31行代码注释

144行代码注释

(3)程序工程编译、HEX生成

①Translate工程,编译没有错误、没有警告

②然后Build工程

③然后Rebuild生成HEX文件

在工程文件夹Obj中,找到生成的HEX文件

二、下载设置

1、开发板设置

短线冒默认不动就行

USB下载口是以前那种口子大一号的MP3口

2、打开烧录程序

3、烧录,开始编程、下载到PLC中

4、JLINK下载和调试

参见博客:

STM32 使用ARM仿真器设置-CSDN博客

三、固件库和模板工程打包下载

1、下载链接

STM32F4库函数模板工程和固件库下载链接:

https://download.csdn.net/download/panjinliang066333/88666503

2、固件库和模板工程文件夹展示

固件库

模板工程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1337855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次redis内存没满发生key逐出的情况。

现象: 从监控上看,redis的内存使用率最大是80%,但是发生了key evicted 分析: 原因1、可能是阿里云监控没抓取到内存100%监控数据。 阿里控制台监控监控粒度是5秒。 内存使用率的计算方法。 used_memory_human/maxmemory 原因2、…

uniapp APP应用程序iOS没有上架到苹果应用商店如何整包更新?

随着移动互联网的快速发展,uni-app 作为一种跨平台开发框架,受到了广泛欢迎。然而,有时候开发者可能会遇到一个问题:如何为已经发布到苹果应用商店的 uni-app APP 进行整包更新?尤其是当应用还没有上架到苹果应用商店时…

MongoDB数字字符串排序问题

问题描述 MongoDB中有一个集合t_test_sort结构如下,其中数值字段value为字符串类型,现想按照value的数值大小进行降序排列。 {"_id" : ObjectId("656c87b36ca8100cd4a60348"),"name" : "麻了","date&quo…

Spark与Hadoop的关系和区别

在大数据领域,Spark和Hadoop是两个备受欢迎的分布式数据处理框架,它们在处理大规模数据时都具有重要作用。本文将深入探讨Spark与Hadoop之间的关系和区别,以帮助大家的功能和用途。 Spark和Hadoop简介 1 Hadoop Hadoop是一个由Apache基金会…

Upload-lab(pass1~2)

Pass-1-js检查 这里检验 因为是前端js校验,所以只用绕过js前端校验 用burp抓包修改文件类型 写一个简易版本的php Pass-2-只验证Content-type 仅仅判断content-type类型 因此上传shell.php抓包修改content-type为图片类型:image/jpeg、image/png、image/gif

网安面试三十道题(持续更新)

91 mof提权 ## 是mysql的提权方式,在Linux下不能用,就是利用了 c:/windows/system32/wbem/mof/目录下的nullevt.mof文件,每分钟都会在一个特定的时间去执行一次的特征 sql语句: ## 通过shell上传这个文件,通过sql语句写…

Tg-5511cb: tcxo高稳定性+105℃高温

爱普生推的一款TG-5511CB是一种高稳定的TCXO温补晶体振荡器,频率范围十分广泛从 10mhz ~ 54mhz,它的电源电压只需要3.3V,无论是手机还是其他电子设备,都能轻松提供稳定的电力支持。频率/温度特性表现出色,0.28 10^6Ma…

目标检测-Two Stage-Fast RCNN

文章目录 前言一、Fast RCNN的网络结构和流程二、Fast RCNN的创新点1.特征提取分类回归合一2.更快的训练策略 总结 前言 前文目标检测-Two Stage-SPP Net中提到SPP Net的主要缺点是: 分开训练多个模型困难且复杂尽管比RCNN快10-100倍,但仍然很慢SPP Ne…

Jmeter之从CSV文件获取数据

新建csv文件 新建一个excel,填充业务数据,然后导出csv格式文件。 添加一个CSV数据文件 使用

IDEA使用之打包Jar,指定main方法

前言 在某些场景,可能会遇到将非Spring项目打包的情况,我们不需要Tomcat服务器部署,只需要执行指定的main方法即可,这种情况打包成jar就比较方便了。 操作步骤 打包结果默认在项目的out目录下 使用 java -jar xxx.jar

刺猬目标检测数据集VOC格式500张

刺猬是一种可爱的小型哺乳动物,被广泛分布在欧洲、亚洲、非洲和新西兰等地的草地、森林、灌木丛以及城市郊区等地方。刺猬的身体被短而密的刺毛所覆盖,这些刺毛是其最具特征性的外观特征,也是为了自我保护而设计的武器。 刺猬主要以昆虫、蠕…

macos Apple开发证书 应用签名p12证书 获取生成方法 codesign 证书获取

在开发macos应用的时候必须要对自己开发的应用进行签名才能使用, 下面介绍个人如何获取Apple开发签名证书. 必备条件, 你需要先安装 xcode , 注册一个苹果开发者账号 免费的就可以, 以下为获取流程 You need to create a cert through xcode. Additionally, you need to have…

宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库

来源:宏集科技 工业物联网 宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库 原文链接:https://mp.weixin.qq.com/s/UEPtpTehdbFrw3MUCnuR2A 欢迎关注虹科,为您提供最新资讯! 01 前言 在这个数字化时代,物…

SpringCloud 整合 Canal+RabbitMQ+Redis 实现数据监听

1Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

Python in Visual Studio Code 2023年12月发布

作者:Courtney Webster 排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 12 月发布! 此版本包括以下公告: 可配置的调试选项已添加到“运行”按钮菜单可以使用 Pylance 显示类型层次…

声明 | 为打击假冒账号、恶意抄袭账号等诈骗活动,提升本账号权威,本博主特此郑重声明

声明 | 为打击假冒账号、恶意抄袭账号诈骗活动,提升本账号权威,本博主特此郑重声明 一、本账号为《机器学习之心》博主CSDN唯一官方账号,唯一联系方式见文章底部。 二、《机器学习之心》博主未授权任何第三方账号进行模型合作、程序设计、源…

odoo17核心概念view7——listview总体框架分析

这是view系列的第七篇文章,今天主要介绍我们最常用的list视图。 1、先看list_view,这是主文件 /** odoo-module */import { registry } from "web/core/registry"; import { RelationalModel } from "web/model/relational_model/relational_mode…

2022年山东省职业院校技能大赛高职组云计算赛项试卷第二场-容器云

2022年山东省职业院校技能大赛高职组云计算赛项试卷 目录 【赛程名称】云计算赛项第二场-容器云 需要竞赛软件包以及资料可以私信博主! 【赛程名称】云计算赛项第二场-容器云 【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00 说明:完成本任务…

Python 使用fake_useragent生成随机User-Agent

大多数情况下,需要设置请求头。而在请求头中,随机更换User-Agent可以避免触发相应的反爬机制。使用第三方库fake-useragent便可轻松生成随机User-Agent。 安装使用 以下简单介绍fake-useragent的安装使用,以及可能出现的问题和解决方法。 安…

数据库 基础面试第一弹

1. SQL语句类型 1. DDL(Data Definition Language,数据定义语言): DDL语句用于定义数据库对象(如表、索引、视图等)。常见的DDL语句包括: CREATE:用于创建数据库对象,如…