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

萌新的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.hqwc.cn/news/70333.html

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

相关文章

opencv实现以图搜图

这里写目录标题 1. 步骤1.1 导入OpenCV库:1.2 加载图像1.3 提取特征1.4 匹配特征1.5 显示结果 2. 完整代码3. 测试图片及效果 1. 步骤 1.1 导入OpenCV库: 在您的C代码中,首先需要导入OpenCV库。您可以使用以下语句导入核心模块:…

C语言暑假刷题冲刺篇——day2

目录 一、选择题 二、编程题 🎈个人主页:库库的里昂 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C语言每日一练 ✨其他专栏:代码小游戏C语言初阶🤝希望作者的文章能对你…

[数据集][目标检测]钢材表面缺陷目标检测数据集VOC格式2279张10类别

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):2279 标注数量(xml文件个数):2279 标注类别数:10 标注类别名称:["yueyawan",&…

uniapp app 实现右上角回首页;点homeButton返回上一页;onNavigationBarButtonTap不生效问题

场景: app,Android移动端 实现点击右上角图标,回首页。 问题:用了官网的 homeButton,图标正常展示了,也可点击,但每次点击后是会返回上一页而非首页。 后来查到说,要结合onNavigatio…

知了汇智“2023年暑期双师型师资培训班”火热进行中

为贯彻落实中共中央、国务院印发《关于全面深化新时代教师队伍建设改革的意见》、国务院办公厅印发《关于深化产教融合的若干见》、教育部办公厅发布《关于做好职业教育“双师型”教师认定工作的通知》等文件精神,助力“双师型”教师联合培养,提升信息技…

Nginx的负载均衡

目录 绪论 1、nginx的七层代理和四层代理 1.1 七层代理简述 1.2 四层代理简述 1.3 四层代理和七层代理之间的区别 1.4 四层和七层谁的速度快 1.5 正向代理 1.6 反向代理 1.6.1 默认算法 1.6.2 加权轮询 1.6.3 ip_hash算法 1.6.4 least_conn 1.6.5 url_hash 1.6 6 …

深兰科技熊猫汽车牵手首恒出行,人工智能技术提升商用车运营服务

8月8日,深兰科技集团旗下熊猫新能源汽车(上海)有限公司(下称熊猫新能源汽车)与河南首恒出行服务有限公司(下称首恒出行)在深兰科技总部举行签约仪式,首恒出行将向熊猫新能源汽车年定向采购10000台商用车,双方将在汽车后市场领域进行技术合作。…

从零构建深度学习推理框架-8 卷积算子实现

其实这一次课还蛮好理解的&#xff1a; 首先将kernel展平&#xff1a; for (uint32_t g 0; g < groups; g) {std::vector<arma::fmat> kernel_matrix_arr(kernel_count_group);arma::fmat kernel_matrix_c(1, row_len * input_c_group);for (uint32_t k 0; k < k…

13 Web全栈 pnpm

什么是pnpm&#xff1f; 可以理解成performant npm缩写 速度快、节省磁盘空间的软件包管理器 特点 快速- pnpm比其他包管理器快2倍高效- node_modules中的文件链接自特定的内容寻址存储库支持monorepos- 内置支持单仓多包严格- pnpm默认创建了一个非平铺的node_modules 因此代…

c++ std::shared_ptr(内存布局)

https://cplusplus.com/reference/memory/shared_ptr/

设计HTML5图像和多媒体

在网页中的文本信息直观、明了&#xff0c;而多媒体信息更富内涵和视觉冲击力。恰当使用不同类型的多媒体可以展示个性&#xff0c;突出重点&#xff0c;吸引用户。在HTML5之前&#xff0c;需要借助插件为网页添加多媒体&#xff0c;如Adobe Flash Player、苹果的QuickTime等。…

Linux驱动入门(6.2)按键驱动和LED驱动 --- 将逻辑电平与物理电平分离

前言 &#xff08;1&#xff09;在学习完Linux驱动入门&#xff08;6&#xff09;LED驱动—设备树之后&#xff0c;我们发现一个问题&#xff0c;设备树明明的gpios信息明明有三个元素gpios <&gpio5 3 GPIO_ACTIVE_LOW>; &gpio5 3 用来确定控制那个引脚&#xf…