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

目录

一、工程配置

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.mzph.cn/news/579920.shtml

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

相关文章

【前端技术】Vite vs Webpack

✨专栏介绍 在当今数字化时代,Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序,就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术,以及各种框架、库和工具…

Banana Pi BPI-M4 Berry 全志H618开发板快速使用手册

介绍 BPI-M4 Berry 开发板是一款功能强大的单板计算机 (SBC),利用 Allwinner H618 片上系统 (SoC) 的功能为开发人员提供令人印象深刻的性能和丰富的功能。与 Raspberry Pi 4b 类似,BPI-M4 Berry 拥有可比的 CPU 性能、LPDDR4 内存支持、集成 WiFi 和蓝…

人机验证码生成与验证:提升系统安全性

一、前言 为了防止机器人或脚本程序自动化攻击和滥用系统资源,很多网站和应用程序需要使用验证码来判断用户是否为真人。 一般登录都要求用户手动输入以验证身份的安全措施。验证码是一种通过生成包含随机字符的图像或文本,通常包含了不同大小写字母、数…

内网穿透的应用-Ubuntu安装XRDP远程桌面结合内网穿透实现远程桌面Ubuntu

文章目录 一、 同个局域网内远程桌面Ubuntu二、使用Windows远程桌面连接三、公网环境系统远程桌面Ubuntu1. 注册cpolar账号并安装2. 创建隧道,映射3389端口3. Windows远程桌面Ubuntu 四、 配置固定公网地址远程Ubuntu1. 保留固定TCP地址2. 配置固定的TCP地址3. 使用…

工业4.0、 工业互联网、智能制造与设备通信协议 Modbus OPC MQTT

工业4.0是指第四次工业革命的核心概念,它代表了制造业的一种转型趋势,即通过深度整合数字化、互联和智能化技术,实现生产方式的革新。以下是对工业4.0主要特点的概述: 数字化:将物理世界与虚拟世界紧密连接&#xff0c…

ros2+gazebo+urdf:ros2机器人使用gazebo的urdf文件中的<gazebo>部分官网资料

原文链接SDFormat extensions to URDF (the gazebo tag) — Documentation 注意了ros2的gazebo部分已经跟ros1的gazebo部分不一样了: Toggle navigation SpecificationAPIDocumentationDownload Back Edit Version: 1.6 Table of C…

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测 目录 多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多…

Qt/C++音视频开发61-多屏渲染/一个解码渲染到多个窗口/画面实时同步

一、前言 多屏渲染就是一个解码线程对应多个渲染界面,通过addrender这种方式添加多个绘制窗体,我们经常可以在展会或者卖电视机的地方可以看到很多电视播放的同一个画面,原理应该类似,一个地方负责打开解码播放,将画面…

谷歌 SGE 和生成式 AI 在搜索中:2024 年会发生什么

2024 年,Google 的搜索生成体验将如何影响营销?探索 AI 驱动的搜索趋势、SERP 中的 SGE、自然流量影响等。 最初,Labs 中的 Google 搜索生成体验 (SGE) 实验预计将于 2023 年 12 月“结束”。但随着谷歌实验室网站的最…

nodejs+vue+微信小程序+python+PHP的勤工俭学系统-计算机毕业设计推荐

微信小程序端 (1)首页。顶部展示公告,下方展示兼职信息详情,按时间倒序,求职者可以根据兼职内容信息和行业进行模糊筛选用人单位的招聘信息,点击某条信息可查看其信息内容和用人单位的信息(包括…

用C语言找最大值最小值极值问题---------(C每日一编程)

一&#xff0c;输入十个数&#xff0c;输出其中的最大值 采用打擂台的方法 void main() {int i, max, a[10];for (i 0; i < 10; i)scanf("%d", &a[i]);max a[0];for (i 1; i < 10; i)if (a[i] > max)max a[i];printf("%d\n", max); } 二…

蓝牙物联网在汽车领域的应用

I、蓝牙的技术特点 ​ 1998 年 5 月&#xff0c;瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM 和英特尔公司五家著名厂商&#xff0c;在联合拓展短离线通信技术的标准化活动时提出了蓝牙技术的概念。蓝牙工作在无需许可的 2.4GHz 工业频段 (SIM)之上(我国的频段范围为2400.0~248…

Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践

本文内容主要基于以下开源项目探索实践&#xff0c; Awesome-Text2SQL:GitHub - eosphoros-ai/Awesome-Text2SQL: Curated tutorials and resources for Large Language Models, Text2SQL, Text2DSL、Text2API、Text2Vis and more.DB-GPT-Hub&#xff1a;GitHub - eosphoros-ai…

关于“Python”的核心知识点整理大全41

目录 scoreboard.py game_functions.py game_functions.py 14.3.8 显示等级 game_stats.py scoreboard.py scoreboard.py scoreboard.py game_functions.py game_functions.py alien_invasion.py 14.3.9 显示余下的飞船数 ship.py scoreboard.py 我们将最高得分圆整…

PyTorch深度学习实战(28)——对抗攻击(Adversarial Attack)

PyTorch深度学习实战&#xff08;28&#xff09;——对抗攻击 0. 前言1. 对抗攻击2. 对抗攻击模型分析3. 使用 PyTorch 实现对抗攻击小结系列链接 0. 前言 近年来&#xff0c;深度学习在图像分类、目标检测、图像分割等诸多领域取得了突破性进展&#xff0c;深度学习模型已经能…

常见的一些库函数

什么是库函数&#xff1a; 库函数是一组预先定义好的函数&#xff0c;可以通过包含相应的头文件来使用。它们提供了各种常用的功能和算法&#xff0c;使得编程更加方便和高效。 库函数的作用如下&#xff1a; 提供常用功能&#xff1a;库函数提供了各种常用的功能&#xff0c;…

记一次应急响应练习(Linux)

记一次应急响应练习(Linux) Linux&#xff1a; 请提交攻击者的IP地址 答&#xff1a; 192.168.31.132 思路&#xff1a; 通过查看历史命令和开放的8080端口看到这台主机上运行的是Tomcat服务。并且在历史命令中看到了Tomcat的安装路径。那么就算是找到了日志的查看点了&#x…

设计模式-依赖注入模式

设计模式专栏 模式介绍模式特点应用场景依赖注入和控制反转的区别代码示例Java实现依赖注入模式Python实现依赖注入模式 依赖注入模式在spring中的应用 模式介绍 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09;是一种面向对象编程中的设计模式&…

STM32F407-14.3.10-表73具有有断路功能的互补通道OCx和OCxN的输出控制位-1x001

如上表所示&#xff0c;MOE1&#xff0c;OSSR0&#xff0c;CCxE0&#xff0c;CCxNE1时&#xff0c;OCx输出状态取决于GPIO端口上下拉状态&#xff0c;OCxN输出状态取决于OCx_REF与极性选择&#xff08;CCxNP&#xff09;。 -------------------------------------------------…

【头歌实训】Spark 完全分布式的安装和部署(新)

文章目录 第1关&#xff1a; Standalone 分布式集群搭建任务描述相关知识课程视频Spark分布式安装模式主机映射免密登录准备Spark安装包配置环境变量修改 spark-env.sh 配置文件修改 slaves 文件分发安装包启动spark验证安装 编程要求测试说明答案代码 第1关&#xff1a; Stand…