【STM32】 工程

  •  🚩 WRITE IN FRONT 🚩   
  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TOP100|TOP63、阿里云专家博主、掘金优秀创作者、全网粉丝量6w+、全网访问量100w+ 🏅
  • 🆔 文章内容由 謓泽 原创 如需相关转载请提前告知博主
  • 📝 个人主页:謓泽的博客 📃
  • 📣 专栏系列:STM32-单片机謓泽的博客 📃
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝​
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 

₀前言

STM32的工程结构还是比较复杂的,需要我们用到很多的文件。以后我们的代码也都是需要建立在工程结构上的,所以这篇博客文章就讲解一下STM32的工程。

⒈开发方式

目前STM32的开发方式主要有以下几种⇲

  1. 寄存器方式
  2. 标准库「库函数的方式和基于HAL库的方式」

基于寄存器的方式和五一单片机的开发方式是一样的。是我们使用程序直接配置寄存器,来达到我们想要的功能。这种方式是最底层、最直接、效率也会更高一些。但是由于STM32相比于五一来说结构复杂,寄存器太多,所以基于寄存器的方式目前是不推荐的。✘

基于库函数的方式是ST官方提供封装好的函数,通过调用这些函数来间接的配置这些寄存器,由于ST寄存器的封装比较好,所以用这种方式既能够满足对寄存器的配置,对开发人员也是比较友好,有利于提高效率的开发。基于HAL库的方式可以用图形化界面快速配置STM32,这个就比较适用于快速上手STM32的情况了,但是这种方式会隐藏了底层的逻辑。如果你对STM32不够熟悉的化,基本只能够停留在很浅的水平上。所以不推荐HAL库,但是等你学过标准库之后是可以去了解以下的。✔

📃那么使用库函数的方式可以使用STM32的库函数的压缩包,这里可以去我发的这个链接下的简介里面去找到。男神一枚❤

STM32入门教程-2022持续更新中_哔哩哔哩_bilibili        🍻大家也可以多去支持他的视频顺便投个币啥的哟,讲的真的特别好,好的视频尤其是学习类的拒绝白嫖党✘哈哈哈🙈

⒉STLINK

操作方式⇢STM32最小系统板、STLINK和四根杜邦线,按照插针上的标识符。把3.3V、SWDIO、SWCLK、GND对应的连接好来。

⒊新建工程步骤

  1. 建立工程文件夹,Keil中新建工程,选择型号。
  2. 工程文件夹里建立StartLibraryUser等文件夹,复制固件库里面的文件到工程文件夹。
  3. 工程里对应建立StartLibraryUser等同名称的分组,然后将文件夹内的文件添加到工程分组里。
  4. 工程选项,C/C++Include Paths内声明所有包含头文件的文件夹。
  5. 工程选项,C/C++Define内定义。USE_STDPERIPH_DRIVER。
  6. 工程选项,Debug,下拉列表选择对应调试器,SettingsFlash Download里勾选Reset and Run。

⒋ 工程架构

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

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

相关文章

html2canvas生成图片地址Base64格式转成blob在转成file(二进制)可正常发送(保姆教程,复制粘贴可用)

开始: 最终结果: 1. html2canvas方法生成的图片地址已Base64编码形式放在img标签src中可直接展示生成的图片(注意页面标签获取位置,还有个setTimeout页面渲染需要时间) setTimeout(function () {var result {};v…

DiffusionDet: Diffusion Model for Object Detection

DiffusionDet: Diffusion Model for Object Detection 论文概述不同之处整体流程 论文题目:DiffusionDet: Diffusion Model for Object Detection 论文来源:arXiv preprint 2022 论文地址:https://arxiv.org/abs/2211.09788 论文代码&#xf…

24、springboot的自动配置01--类条件注解@ConditionalOnClass、bean条件注解@ConditionalOnBean

条件注解的理解:该注解指定了一些条件,只有符合这些条件,被该注解修饰的类或方法才能生效。 这些条件可以是yml配置文件里面的属性等数据是否存在,也可以是一些依赖驱动是否存在的条件、也可以是指定的bean是否存在等。 springbo…

Golang协程,通道详解

进程、线程以及并行、并发 关于进程和线程 进程(Process)就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一…

iTOP-RK3588开发板安装TFTP服务端

首先在 ubuntu 中执行以下命令安装 TFTP 服务: apt-get install tftp-hpa tftpd-hpa 安装完成以后创建 TFTP 服务器工作目录,并对 TFTP 的服务配置文件进行修改,具体步骤如下: 输入以下命令在家目录创建 tftpboot 文件夹,如下图所示&#x…

Prompt、RAG、微调还是重新训练?如何选择正确的生成式AI的使用方法

生成式人工智能正在快速发展,许多人正在尝试使用这项技术来解决他们的业务问题。一般情况下有4种常见的使用方法: Prompt EngineeringRetrieval Augmented Generation (RAG 检索增强生成)微调从头开始训练基础模型(FM) 本文将试图根据一些常见的可量化…

爬虫逆向实战(十七)--某某丁简历登录

一、数据接口分析 主页地址:某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密? 通过查看请求头可以发现有一个To…

C++学习系列之动态库报错问题

C学习系列之动态库报错问题 啰嗦问题解决总结 啰嗦 动态库已建,C文件一加,全是报错,一片红。 问题 解决 解决办法就是加标头 总结 小问题,记录一下。

基于 KubeSphere 的应用容器化在智能网联汽车领域的实践

公司简介 某国家级智能网联汽车研究中心成立于 2018 年,是担当产业发展咨询与建议、共性技术研发中心、创新成果转化的国家级创新平台,旨在提高我国在智能网联汽车及相关产业在全球价值链中的地位。 目前着力建设基于大数据与云计算的智能汽车云端运营…

边缘智能聚焦嵌入式世界

没有什么超出了我们的想象力的极限,我们习惯于在间谍电影中看到的东西需要进行大规模升级,以超越现在认为的标准。 德国纽伦堡—一切都超出了我们的想象范围,而且我们习惯于在间谍电影中看到的东西需要进行大规模升级,以超越现在认…

段错误核心转储

在linux下运行可执行文件的时候出现了以下错误: error:segmentation fault core dumped解决方法: #查看core文件大小判断是否可写 $ ulimit -a real-time non-blocking time (microseconds, -R) unlimited core file size (blocks, -c) …

30W IP网络有源音箱 校园广播音箱

SV-7042XT是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,可达到功率30W。同时它可以外接一个30W的无源副音箱,用在面积较大的场所。5寸进口全频低音…

初始C语言(6)——详细讲解表达式求值以及其易错点

系列文章目录 第一章 “C“浒传——初识C语言(1)(更适合初学者体质哦!) 第二章 初始C语言(2)——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言(3)——…

GaussDB 实验篇+openGauss的4种1级分区案例

✔ 范围分区/range分区 -- 创建表 drop table if exists zzt.par_range; create table if not exists zzt.par_range (empno integer,ename char(10),job char(9),mgr integer(4),hiredate date,sal numeric(7,2),comm numeric(7,2),deptno integer,constraint pk_par_emp pri…

Python程序设计——列表

一、引言 关键点:一个列表可以存储任意大小的数据集合。 程序一般都需要存储大量的数值。假设,举个例子,需要读取100个数字,计算出它们的平均值,然后找出多少个数字是高于这个平均值的。程序首先读取100个数字并计算它…

C语言刷题训练DAY.6

1.进制AB 解题思路&#xff1a; 这里我们按照备注的提示&#xff0c;调整输入格式。 注意&#xff1a;%x是十六进制的数字 %o是八进制的数字 解题代码&#xff1a; #include<stdio.h> int main() {int a 0;int b 0;scanf("0x%x 0%o", &a, &b);pri…

自定义Android滑块拼图验证控件

自定义Android滑块拼图验证控件 拼图认证视图默认策略工具类参考 1、继承自AppCompatImageView&#xff0c;兼容ImageView的scaleType设置&#xff0c;可设置离线/在线图片。 2、通过设置滑块模型&#xff08;透明背景的图形块&#xff09;设置滑块&#xff08;和缺省块&#x…

sql server 存储过程 set ansi_nulls set quoted_identifier,out 、output

SQL-92 标准要求在对空值(NULL) 进行等于 () 或不等于 (<>) 比较时取值为 FALSE。 当 SET ANSI_NULLS 为 ON 时&#xff0c;即使 column_name 中包含空值&#xff0c;使用 WHERE column_name NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值&#xff0c…

python列表笔记,python列表用法及基础操作

列表的介绍 定义100个变量&#xff0c;每个变量存放一个学生的姓名可行吗&#xff1f;有更好的办法吗&#xff1f; 答&#xff1a; 列表 一、列表的格式 定义列的格式&#xff1a;[元素1, 元素2, 元素3, ..., 元素n] 变量tmp的类型为列表 tmp [xiaoWang,180, 65.0] 列…

亿赛通电子文档安全管理系统任意文件上传漏洞复现

0x01 产品简介 亿赛通电子文档安全管理系统&#xff08;简称&#xff1a;CDG&#xff09;是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&…