STM32CubeIDE基础学习-基础外设初始化配置

STM32CubeIDE基础学习-基础外设初始化配置步骤


前言

前面的文章介绍了基础工程的创建步骤,这篇文章就接着在基础工程的基础上来配置相关外设了,下面以STM32F103C8T6的主芯片为例进行简单配置。

基础工程创建步骤回顾


具体的配置步骤流程如下:

第一步:配置GPIO功能,如下图所示:

在这里插入图片描述

可以在右边这个主芯片上找到需要配置的功能引脚,然后点击选择需要配置的功能就行。

芯片选择小技巧:如果芯片引脚过多无法找到时,可以在右下角的搜索框输入引脚名称进行搜索,输入后就可以看到主芯片的引脚会出现黑色在闪烁了,然后鼠标点击该引脚即可选择输入对应需要配置的功能了,如下图所示:

在这里插入图片描述

鼠标点击下图①处的引脚即可配置该引脚的功能了。

在这里插入图片描述

这些GPIO的相关功能根据需求来配置就行,这里建议自定义一下User Lebel,定义一个和相关端口外设相近的名字,可以方便在代码查看和编写代码。

第二步:配置RCC时钟来源。

在这里插入图片描述

我的开发板使用的是外部高速时钟作为时钟来源的,具体看开发板或原理图即可,所以这里选择陶瓷晶振选项。

第三步:配置下载接口。

在这里插入图片描述
这里选择2线SWD方式,节省IO资源。

注意:如果工程这里不选择下载方式,那么可以用下载器正常下载一次代码,后面可能会无法再继续下载代码了,为了避免出错,这里建议选择一种下载方式。

第四步:配置时钟树。

在这里插入图片描述

开发板采用的是外部8M高速晶振时钟作为时钟来源,经过配置倍频因子和分配参数后,最终可以达到最高72MHz的系统主频。

系统时钟配置这里有一个小技巧:就是当你只知道上图②处输入高速时钟和③处系统最终的时钟主频时,可以直接在HCLK即③处输入需要的系统主频时钟,然后按键盘回车键,系统就会自动设置具体倍频因子和分频因子的参数了,过程不再需要人为处理,这种操作就很方便了。当然,如果能独立选择这些参数则最好,说明你对该时钟系统已经熟练掌握了。

第五步:设置输出文件对。

在这里插入图片描述

勾选上图③处,只复制用到的库文件到工程,还建议勾选④处,这样选择后,输出的代码就对应放在.c/.h文件里面了,有利于模块化编程。如果不这样选择的话,不然生成代码时,全部代码都放在.c文件中,看起来会比较多、比较乱的,根据个人习惯选择就好。

第六步:生成代码。

在这里插入图片描述

或者直接点击下图这个生成按钮:

在这里插入图片描述

第七步:最终生成的代码结构如下图所示:

在这里插入图片描述
可以看到工程左边的工程栏有对应的.c和.h文件,看起来就比较清爽了。需要查看哪个文件,直接双击打开即可。

到此,GPIO相关外设的基本配置就完成了,其它的外设也类似的,流程基本都是这样。

打开main文件,就可以看到代码生成了GPIO,时钟等相关初始化代码入口了,跳转到函数定义处就可以看到具体的定义了。

总结

以上就是基础外设工程的配置步骤了,其它外设根据需求配置,而时钟配置是每个工程都必须要有的,如果后面需要用到相同型号的芯片功能,那么就可以将这个工程另存作为模板使用,直接在这个工程上面进行添加或修改就可以了,而不用每次都花时间去新建工程这种重复性的操作步骤,当然,如果对这个操作比较熟悉了的话,新建起来也非常快的,根据个人情况喜欢就好。具体操作方法,可以看后面的文章就行。

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

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

相关文章

【Linux】访问文件的本质|文件描述符|文件重定向

文章目录 文件的结构文件描述符标准输入输出文件描述符的规则 文件重定向输出重定向(对应符号>)echo的输出重定向 输入重定向&#xff08;对应符号<&#xff09;追加重定向&#xff08;对应符号‘>>’&#xff09;实现文件重定向的函数dup2()参数测试 前言&#xf…

could not publish server configuration for tomcat at localhost

1&#xff0c;报错信息如图&#xff1a; 2&#xff0c;找到servers双击&#xff0c;选择Modules&#xff0c;如果有两个webModules ,remove一个&#xff0c; 3&#xff0c;如果重启还是报错&#xff0c;干脆两个都remove&#xff0c;双击tomcat服务add And Remove重新添加

【Python】深度学习基础知识——梯度下降详解和示例

尽管梯度下降&#xff08;gradient descent&#xff09;很少直接用于深度学习&#xff0c;但它是随机梯度下降算法的基础&#xff0c;也是很多问题的来源&#xff0c;如由于学习率过大&#xff0c;优化问题可能会发散&#xff0c;这种现象早已在梯度下降中出现。本文通过原理和…

Docker知识点总结

二、Docker基本命令&#xff1a; Docker支持CentOs 6 及以后的版本; CentOs7系统可以直接通过yum进行安装&#xff0c;安装前可以 1、查看一下系统是否已经安装了Docker: yum list installed | grep docker 2、安装docker&#xff1a; yum install docker -y -y 表示自动确认…

flutter旋转动画,算法题+JVM+自定义View

在很多的博客或者书上&#xff0c;说有三种&#xff0c;除了上述的两种以外&#xff0c;还有一种是实现Callable接口。但是这种并不是&#xff0c;因为&#xff0c;我们检查JDK中Thread的源码&#xff0c;看它的注释&#xff1a; There are two ways to create a new thread o…

Linux操作系统的vim常用命令和vim 键盘图

在vi编辑器的命令模式下&#xff0c;命令的组成格式是&#xff1a;nnc。其中&#xff0c;字符c是命令&#xff0c;nn是整数值&#xff0c;它表示该命令将重复执行nn次&#xff0c;如果不给出重复次数的nn值&#xff0c;则命令将只执行一次。例如&#xff0c;在命令模式下按j键表…

Fuyu-8B A Multimodal Architecture for AI Agents

Fuyu-8B: A Multimodal Architecture for AI Agents Blog: https://www.adept.ai/blog/fuyu-8b TL; DR&#xff1a;无视觉编码器和 adapter&#xff0c;纯解码器结构的多模态大模型。 Adept 是一家做 Copilot 创业的公司&#xff0c;要想高效地帮助用户&#xff0c;必须要准确…

【Linux网络】再谈 “协议“

目录 再谈 "协议" 结构化数据的传输 序列化和反序列化 网络版计算器 封装套接字操作 服务端代码 服务进程执行例程 启动网络版服务端 协议定制 客户端代码 代码测试 使用JSON进行序列化与反序列化 我们程序员写的一个个解决我们实际问题&#xff0c;满…

新品发布会媒体邀请,邀约记者现场报道

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 新品发布会媒体邀请及记者现场报道邀约流程&#xff1a; 一、策划准备 明确新品发布会时间、地点和主题。 制定媒体邀请计划&#xff0c;确定目标媒体。 二、邀请媒体 向目标媒体发送…

CSS的三种定位,响应式web开发项目教程

标准文档流 文档流&#xff1a;指的是元素排版布局过程中 戳这里领取完整开源项目&#xff1a;【一线大厂前端面试题解析核心总结学习笔记Web真实项目实战最新讲解视频】 &#xff0c;元素会默认自动从左往右&#xff0c;从上往下的流式排列方式。并最终窗体自上而下分成一行行…

12、电源管理入门之clock驱动

目录 1. clock驱动构架 1.2 clock consumer介绍 2. Clock Provider 2.1 数据结构表示 2.2 clock provider注册初始化 2.3 DTS配置 2.4 clock驱动实现举例: 3. clock consumer 3.1 获取clock 3.2 操作clock 3.3 实例操作 4. SoC硬件中的使用 参考: 电源管理的两个…

《 前端 vs. 后端:挑战与机遇的对决》

前言 前端开发和后端开发是构建网站、应用程序和其他软件的两个主要方面。它们各自负责不同的任务和功能。 前端开发: 定义:前端开发是指构建用户直接与之交互的网站或应用程序的过程。前端开发主要关注于用户界面和用户体验。技术栈:前端开发通常涉及使用 HTML、CSS 和 Ja…

组基轨迹建模 GBTM的介绍与实现(Stata 或 R)

基本介绍 组基轨迹建模&#xff08;Group-Based Trajectory Modeling&#xff0c;GBTM&#xff09;&#xff08;旧名称&#xff1a;Semiparametric mixture model&#xff09; 历史&#xff1a;由DANIELS.NAGIN提出&#xff0c;发表文献《Analyzing Developmental Trajectori…

7.1.3 Selenium的用法2

目录 1. 切换 Frame 2. 前进后退 3. 对 Cookies 操作 4. 选项卡管理(了解) 5. 异常处理 6. 反屏蔽 7. 无头模式 1. 切换 Frame 我们知道网页中有一种节点叫作 iframe&#xff0c;也就是子 Frame&#xff0c;相当于页面的子页面&#xff0c;它的结构和外部网页的结构完全…

android高级面试题及答案,已拿offer

一、java相关 java基础 1、java 中和 equals 和 hashCode 的区别 2、int、char、long 各占多少字节数 3、int 与 integer 的区别 4、谈谈对 java 多态的理解 5、String、StringBuffer、StringBuilder 区别 6、什么是内部类&#xff1f;内部类的作用 7、抽象类和接口区别 java高…

SkyWalking链路追踪上下文TraceContext的traceId生成的实现原理剖析

结论先行 【结论】 SkyWalking通过字节码增强技术实现&#xff0c;结合依赖注入和控制反转思想&#xff0c;以SkyWalking方式将追踪身份traceId编织到链路追踪上下文TraceContext中。 是不是很有趣&#xff0c;很有意思&#xff01;&#xff01;&#xff01; 【收获】 skywal…

【Mining Data】收集数据(使用 Python 挖掘 Twitter 数据)

@[TOC](【Mining Data】收集数据(使用 Python 挖掘 Twitter 数据)) 具体步骤 第一步是注册您的应用程序。特别是,您需要将浏览器指向 http://apps.twitter.com,登录 Twitter(如果您尚未登录)并注册新应用程序。您现在可以为您的应用程序选择名称和描述(例如“Mining Demo”…

未来已来!AI大模型引领科技革命

未来已来&#xff01;AI大模型正以惊人的速度引领着科技革命。随着科技的发展&#xff0c;人工智能在各个领域展现出了非凡的能力和潜力&#xff0c;大模型更是成为了科技领域的明星。从自然语言处理到图像识别&#xff0c;从智能推荐到语音识别&#xff0c;大模型的应用正在改…

基于ZYNQ PS-SPI的Flash驱动开发

本文使用PS-SPI实现Flash读写&#xff0c;PS-SPI的基础资料参考Xilinx UG1085的文档说明&#xff0c;其基础使用方法是&#xff0c;配置SPI模式&#xff0c;控制TXFIFO/RXFIFO&#xff0c;ZYNQ的IP自动完成发送TXFIFO数据&#xff0c;接收数据到RXFIFO&#xff0c;FIFO深度为12…

word转PDF的方法 简介快速

在现代办公环境中&#xff0c;文档格式转换已成为一项常见且重要的任务。其中&#xff0c;将Word文档转换为PDF格式的需求尤为突出&#xff0c;将Word文档转换为PDF格式具有多方面的优势和应用场景。无论是为了提高文档的可读性和稳定性、保障文档的安全性和保护机制、还是为了…