【【萌新的STM32学习-8】】

news2024/11/24 18:25:43

萌新的STM32学习-8

STM32CubeMX 是由 ST 公司开发的图形化代码自动生成工具,能够快速生成初始化代码,
如配置 GPIO,时钟树,中间件等,使用户专注于业务代码的开发。现在 ST 主推 HAL 库代码,
经典的标准外设库已经停止维护了,新产品也只提供 HAL 库的代码,因此,我们学习 HAL 库
是更加有优势的,由于 HAL 库具有低耦合、通用、抽象了硬件层,使得开发者无需太过关注硬
件驱动的实现,使得开发更加的简单快速,更容易维护,因此被越来越多的产品所使用。

通过上一步安装固件库后,我们就可以使用 STM32CubeMX 配置工程,步骤如下:

  1. 工程初步建立
  2. HSE 和 LSE 时钟源设置
  3. 时钟系统(时钟树)配置
  4. GPIO 功能引脚配置
  5. 配置 Debug 选项
  6. 生成工程源码
  7. 用户程序

在这里插入图片描述
这左边是外部时钟晶振
这右边这块是(外部)输入源时钟信号
在这里插入图片描述
这两个是内部时钟信号源

2 个外部时钟源:⚫ 高速外部振荡器 HSE (High Speed External Clock signal)
外接石英/陶瓷谐振器,频率为 4MHz~16MHz。本开发板使用的是 8MHz。
⚫ 低速外部振荡器 LSE (Low Speed External Clock signal)
外接 32.768kHz 石英晶体,主要作用于 RTC 的时钟源。
(2)2 个内部时钟源:
⚫ 高速内部振荡器 HSI(High Speed Internal Clock signal)
由内部 RC 振荡器产生,频率为 8MHz。
⚫ 低速内部振荡器 LSI(Low Speed Internal Clock signal)
由内部 RC 振荡器产生,频率为 40kHz,可作为独立看门狗的时钟源。
芯片上电时默认由内部的 HSI 时钟启动,如果用户进行了硬件和软件的配置,芯片才会根
据用户配置调试尝试切换到对应的外部时钟源,所以同时了解这几个时钟源信号还是很有必要
的。如何设置时钟的方法我们会在后文提到。

在正点原子一般HSE接的是8MHz
因为我们从上面了解到经过HSE 以及HSI 才能达到 内部的频率 SYSCLK 是72MHz 但是我们怎样才能达到这个频率呢 我们需要经过一个锁相环PLL达到72MHz 倍乘
在这里插入图片描述

因为HSI是8MHz 进来先经过了一个二分频就变成了4 HSE有2分频 和1分频 用内部4乘16=64 也满足不了所需要的72MHz 所以基本上我们用的是外部 的HSE 8x9=72
经过SYSCLK 之后来到了HCLK HCLK其实就是我们的AHB高性能总线 从SYSCLK过来要经过一个分频
来到HCLK之后 会经过2个桥 一个来到APB1 另一个来到APB2
APB1 最大是36M APB2 最大是72M
除了AHB总线之外那么HCLK总线上还会挂载一些外设 和 内核
继而会从APB1 和APB2 各引出一个外设

上面讲述的是高速的部分 接下来叙述一下低速的部分
LSI 与 LSE
LSI是40MHz LSE是 32.768MHz

LSI可以作为IWDG 和 RTC的时钟源
LSE 只作为RTC的时钟源

一些简单的注意事项
由于外部的时钟源振荡器用的是晶体/陶瓷结构 而内部一般来说用的是RC 所以 我们大多会选用外部

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

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

相关文章

82. 删除排序链表中的重复元素 II

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解题思路:设置一个新的哑元节点result,作为头节点,将head中不重复地节点依次链接到哑元节点后面,最后返回result.next 初始值&…

Dynamic CRM开发 - 实体介绍

实体简介 在CRM中,实体(Entity)是数据的基本载体,也是构建业务逻辑网络的基础节点。 实体可以理解为数据库中的一张表(实体中的字段对应数据库表的字段),比如创建一个实体存储客户信息,创建一个实体存储产品信息,产品实体里可以创建一个查找类型的字段(类似表的外键)…

尚医通(医院预约挂号系统)笔记

文章目录 一. 登录系统1. 手机登录1.1 业务流程1.2 代码1.3 JWT 2. 微信登陆2.1 业务流程2.2 代码2.3 OAthu2 3. 用户认证与网关整合 二. 预约挂号1. 业务流程及模块设计 一. 登录系统 1. 手机登录 1.1 业务流程 传入手机号和验证码校验手机号和验证码是否为空校验手机验证码…

阿里云新用户和老用户是如何界定的?产品首购资格是什么?

阿里云新用户条件是什么?针对新用户优惠有哪些?阿里云新用户怎么算?新用户购买云服务器、域名等更优惠,如何获取新用户特价资格?阿里云新用户是指从未购买阿里云产品的用户(域名除外)&#xff0…

《TCP IP网络编程》第十六章

第 16 章 关于 I/O 流分离的其他内容 16.1 分离 I/O 流 「分离 I/O 流」是一种常用表达。有 I/O 工具可区分二者,无论采用哪种方法,都可以认为是分离了 I/O 流。 2次 I/O 流分离: 第一种是第 10 章的「TCP I/O 过程」分离。通 shutdown(soc…

英语——时态

动词随着所表现出的时间而改变的形态,称为时态,包含以下12种 现在过去将来一般一般现在时一般过去时一般将来时进行现在进行时过去进行式将来进行时完成现在完成时过去完成时将来完成时完成进行现在完成进行时过去完成进行时将来完成进行时 1 现在时 …

考公-判断推理-类比推理

第七节课 例题 例题 例题 例题 目无全牛:很熟练 不以为然:不认为正确 不孚众望:不能让人信服 例题 步人后尘:走别人的老路 例题 见义勇为是助人为乐的一种 例题 例题-全同 例题 并列关系 例题 例题 例题 例题 进士…

C++QT教程3——手册4.11.1自带教程(笔记)——创建一个基于Qt Widget的应用程序

文章目录 创建一个基于Qt Widget的应用程序创建Text Finder项目素材文件 填补缺失的部分设计用户界面完成头文件完成源文件创建资源文件 编译和运行程序 参考文章 创建一个基于Qt Widget的应用程序 本教程介绍如何使用Qt Creator创建一个小型Qt应用程序,名为Text F…

docker — 容器网络

一、概述 Docker容器每次重启后容器ip是会发生变化的。 这也意味着如果容器间使用ip地址来进行通信的话,一旦有容器重启,重启的容器将不再能被访问到。 而Docker 网络就能够解决这个问题。 Docker 网络主要有以下两个作用: 容器间的互联…

阿里云轻量应用服务器_2核4G4M_2核2G3M_性能测评

阿里云轻量应用服务器2核2G3M带宽108元一年,系统盘为50GB高效云盘;轻量服务器2核4G4M带宽,60GB高效云盘297.98元12个月。目前轻量应用服务器只有2核2G和2核4G有活动,阿里云百科分享阿里云轻量应用服务器入口: 目录 阿…

动态优先权算法

1.设计目的与要求 1.1设计目的 通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。 1.2设计要求 本实验要求学生独立地用C或C语言编写一个简单的进程管理程序,其主要部分是进程调度。调度算法可由学生自行选择,如基于动态优先级的调度算法…

FL Studio 21 for macOS-21.1.0.3267中文直装版功能介绍及系统配置要求

FL Studio 21简称FL水果软件,全称是:Fruity Loops Studio编曲,由于其Logo长的比较像一款水果因此,在大家更多的是喜欢称他为水果萝卜,FL studio21是目前最新的版本,这是一款可以让你的计算机就像是一个全功能的录音室&…

ArcGIS Maps SDK for JavaScript系列之三:在Vue3中使用ArcGIS API加载三维地球

目录 SceneView类的常用属性SceneView类的常用方法vue3中使用SceneView类创建三维地球项目准备引入ArcGIS API创建Vue组件在OnMounted中调用初始化函数initArcGisMap创建Camera对象Camera的常用属性Camera的常用方法 要在Vue 3中使用ArcGIS API for JavaScript加载和展示三维地…

8.利用matlab完成 符号微积分和极限 (matlab程序)

1.简述 一、符号微积分 微积分的数值计算方法只能求出以数值表示的近似解,而无法得到以函数形式表示的解析解。在 MATLAB 中,可以通过符号运算获得微积分的解析解。 1. 符号极限 MATLAB 中求函数极限的函数是 limit,可用来求函数在指定点的…

Java 并发编程与CAS基本原理

一、Java并发基础知识 Java里的程序天生就是多线程的,那么有几种新启线程的方式? 两种,启动线程的方式只有: 1、X extends Thread;,然后X.start; 2、X implements Runnable;然后交给Thread运行。 Java…

IDEA的常用设置,让你更快速的编程

一、前言 在使用JetBrains的IntelliJ IDEA进行软件开发时,了解和正确配置一些常用设置是非常重要的。IDEA的强大功能和定制性使得开发过程更加高效和舒适。 在本文中,我们将介绍一些常用的IDEA设置,帮助您更好地利用IDEA进行开发。这些设置包…

Nonebot实战之编写插件1

前言 应粉丝群内粉丝要求,我也决定写一个Nonebot插件编写教程,从0开始教学。有些不对的地方也欢迎大家指正,修改。 开始 准备 合适的代码编辑器一定的python基础懂得提问的方式 代码编辑器 代码编辑器有很多种选择,比如 vsc…

基本逻辑门的工作原理、电路图、逻辑图、逻辑表达式等

与、或、与非、或非、异或门、三态门、OD门(OC门)和传输门等的结构与使用 逻辑门是基于半导体器件形成的,开始学习逻辑门之前应具备半导体器件的相关知识 可阅读如下文章进行先导学习 半导体器件: https://blog.csdn.net/weixi…

彻底卸载Android Studio

永恒的爱是永远恪守最初的诺言。 在安装Android Studio会有很多问题导致无法正常运行,多次下载AS多次错误后了解到,删除以下四个文件才能彻底卸载Android Studio。 第一个文件:.gradle 路径:C:\Users\yao(这里yao是本…

下载程序到西门子PLC

更多关于西门子S7-200PLC内容请查看:西门子200系列PLC学习课程大纲 下载西门子200PLC程序分以下两步: 一.编译程序 1. 如下图1-1所示,使用PPI电缆将PLC和电脑连接上,注意笔记本使用USB转PPI电缆,连接保证给PLC单独供…