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.mfbz.cn/a/273899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Temu和Shein争端再起:海外电商“围城”下,一场厮杀正在酝酿

两家中国电商出海“双子星”,争端再起。 最近,美国法院最新公开临时限制令显示,跨境电商平台Temu(特木)的男装、休闲装、运动服等50款产品涉侵权时尚电商平台Shein(希音),并向Temu旗…

【halcon深度学习】dev_display_dl_data 移植到C# 上篇

效果展示 前言 在研究halcon深度学习的时候,会发现halcon的例程里面用到了大量的二次封装库函数。这些库函数内部也是由基础的算子组成。我们在halcon的开发环境里面用的很爽,但是一旦要在C#中使用,就会报错。 一开始,我想避开这个移植过程,直接使用halcon引擎(HDevEngi…

网络通信-Linux 对网络通信的实现

Linux 网络 IO 模型 同步和异步,阻塞和非阻塞 同步和异步 关注的是调用方是否主动获取结果 同步:同步的意思就是调用方需要主动等待结果的返回 异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知&#xff0…

【算法题】矩阵顺时针旋转90° (js)

力扣链接:https://leetcode.cn/problems/rotate-matrix-lcci/description/ 本人题解: /*** param {number[][]} matrix* return {void} Do not return anything, modify matrix in-place instead.*/ var rotate function (matrix) {const x matrix.le…

【基础篇】六、自定义类加载器打破双亲委派机制

文章目录 1、ClassLoader抽象类的方法源码2、打破双亲委派机制:自定义类加载器重写loadclass方法3、自定义类加载器默认的父类加载器4、两个自定义类加载器加载相同限定名的类,不会冲突吗?5、一点思考 1、ClassLoader抽象类的方法源码 ClassL…

【Linux】进程查看|fork函数|进程状态

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…

ADRC-跟踪微分器TD的Maltab实现及参数整定

目录 问题描述: 跟踪微分器TD基本概念: Matlab及其实现: 跟踪效果: 例1:跟踪信号 sin(t) 0.5*rand(1,1)。 例2:跟踪部分时段为方波的信号,具体形式见代码get_command。 参数整定&#xf…

⭐Unity 读取本地图片再区域裁剪

现在需求是将本地的图片读取之后再区域截图成新的图片 话不多说直接上代码 using UnityEngine; using System.IO;public class LocalRegionCapture : MonoBehaviour {public string fullScreenImagePath "Assets/SavedImages/fullScreenScreenshot.png";public str…

蓝桥杯2020年5月青少组Python程序设计国赛真题

1、 上边是一个算法流程图,最后输出的b的值是() A.377 B.987 C.1597 D.2584 2、 3、如果整个整数X本身是完全平方数,同时它的每一位数字也都是完全平方数我们就称X 是完美平方数。前几个完美平方数是0、1、4、9、49、100、144......即第1个完美平方数是0,第2个是 1,第3个…

问卷调查反应偏差消除技巧:提高数据准确性的实用方法

回应偏差会对您的调查结果产生不利影响。以下是您可以采取的措施来对抗偏差。调查之所以成为一个有力的工具,是因为它能够获取关于目标受众的真实信息和数据,而不是依靠试错方法。然而,为了使这些数据有用,它必须是无误差的&#…

SAP PP 配置学习(四)

分类 维护类的层次 分配 批量更改特征值

如何使用设计模式来解决类与类之间调用过深的问题。

我们将使用责任链模式和装饰者模式的组合。 考虑一个简化的餐厅订单处理系统,其中包括服务员(Waiter)、厨师(Chef)和收银员(Cashier)。订单从服务员开始,然后传递给厨师&#xff0c…

JUC并发编程 09——队列同步器AQS

目录 一.Lock接口 1.1Lock的使用 1.2Lock接口提供的 synchronized 不具备的主要特性 1.3Lock接口的所有方法 二.队列同步器(AQS) 2.1队列同步器的接口与示例 2.2AQS实现源码分析 ①同步队列 ②获取锁 ③释放锁 一.Lock接口 说起锁,你肯定会想到 synchron…

css 超过一行/多行显示省略号... - 附示例

效果 1、超过一行 2、超过多行 - 以两行为例 二、示例代码 1、超过一行 margin: 20px; width: 50px; border: 1px solid red; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2、超过多行 - 以两行为例 margin: 20px; width: 50px; border: 1px solid r…

docker小白第八天

docker小白第八天 redis常规安装 前期已经配好了阿里云容器镜像加速库 docker search redis docker pull redis:6.0.8 docker images redis:6.0.8启动容器,并进入容器的命令行界面 docker run -d -p 6379:6379 redis:6.0.8 docker ps docker exec -it 容器id /bin/bash验证…

202362读书笔记|《茉莉花》——时间滤去一切伤痛,让智慧和美好永垂不朽

202362读书笔记|《茉莉花》——时间滤去一切伤痛,让智慧和美好永垂不朽 《茉莉花》作者卓凌,插图美,文字也好读的一本诗集,很值得一读! 部分节选如下: 生活是一列穿山越岭的火车;享受过程&#…

老用户可买:腾讯云轻量应用服务器2核2G4M带宽118元一年,3年540元

它急了,腾讯云急了,继阿里云推出99元新老用户同享的云服务器后,腾讯云轻量应用服务器2核2G4M配置也支持新老用户同享了,一年118元,3年540元,老用户也能买,50GB SSD系统盘,300GB 月流…

计算机毕业设计 基于SpringBoot的高校竞赛管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

模式识别与机器学习-特征选择和提取

模式识别与机器学习-特征选择和提取 特征选择一些距离测度公式独立特征的选择准则一般特征的散布矩阵准则 离散K-L变换 谨以此博客作为复习期间的记录。 常见分类问题的流程,数据预处理和特征选择提取时机器学习环节中最重要的两个流程。这两个环节直接决定了最终性…

初见 Amazon Q

前言 如果今年要写一篇年终总结的话,生成式 Ai 一定是绕不过的一个话题,自从去年的 chatGPT 火爆全球后,今年各种生成式 Ai 的产品络绎不绝地出现大众视线,版本迭代的速度也是非常快,大家甚至开始在自己的生活和工作中…
最新文章