STM32GPIO速度配置究竟改变了什么-笔记

STM32GPIO速度配置究竟改变了什么-笔记

  • 摘要
  • STM32引脚内部框图
  • STM32时钟树
  • 端口寄存器
  • I/O交流特性定义

摘要

一般有 Low、Medium、High,三种速度选择。速度配置变了硬件什么状态? 对 GPIO 的输入输出信号有什么影响? 编程时如何选取速度参数?或者最直接的 你以为 GPIO口的刷新频率 那么就错了,实际上情况如下解释

在这里插入图片描述

含义是什么,是书面意思的速度吗?它是像有些人理解的那样是带宽吗?

STM32引脚内部框图

在这里插入图片描述

“输出控制”首先这个频率设置是针对输出信号

STM32时钟树

在这里插入图片描述

在这里插入图片描述

GPIO 口是挂接在 AHB 总线上,输入状态的频率也已经确定了是按时钟 APB2分频时钟进行刷新的。

端口寄存器

在这里插入图片描述

这些代码实际上最终设置了寄存器,端口配置低寄存器(GPIOX_CRL)。

I/O交流特性定义

在这里插入图片描述
当信号的上升时间加下降时间小于2/3个周期并且占空比为50%左右时为最大频率

请添加图片描述

上升时间和下降时间是由负载决定的,频率提高时,周期 T 逐渐缩短而 Tr 和 Tf 保持不变。他们在一个周期内的占比会逐渐上升而使稳定高电平和稳定低电平这一段Tw 越来越短,如果要使这个输出的数字信号能有效地被接收端正确识别,Tw 就不能太短,所以定义当 Tw 缩短到1/6 T 时就不能再短了。

最大频率受制于上升沿和下降沿。

设置三种或者四种 GPIO 速度模式,实际上是上并和下降时间的设置。
在这里插入图片描述
在这里插入图片描述

请添加图片描述

那么这个频率是信号带宽吗?
请添加图片描述

因为输出最大频率时波形实际上已经接近正旋波了,其 3dB 带宽稍大于信号的频率

信号的上升时间和下降时间是由电路的驱动能力和负载电容决定的当负载电容一定时,GPIO 端口的驱动能力越大,充放电的电流也越大、上升时间就越短。

三种模式是改变那部分的是改变了芯片电路中的哪个部分。从而达到调整上升和下降时间的呢?

在这里插入图片描述
输出控制的MOS管的驱动电压,使它们有不同的导通电阻,从而控制驱动输出的电流,影响上升沿和下降沿。

尤其是多个 GPIO 端口同时输出时,在信号切换电平的瞬间会有一个很大的尖峰电流。
请添加图片描述

也就是这个尖峰电压会产生一个很大的干扰电压。

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

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

相关文章

HNU-火星人足球赛

【问题描述】 火星人足球赛的比赛规则与地球人的比赛规则有些非常相似,比如严重犯规,将被给予黄牌警告,特别严重的犯规,将给予红牌直接罚下,如果有人得到第2张黄牌,则自动获得红牌罚下,比赛同样…

【哈希】两数之和

题目&#xff1a;https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map new HashMap<>();for (int i 0; i < nums.l…

Oracle常见内置程序包的使用Package

Oracle常见内置程序包的使用 点击此处可跳转至&#xff1a;Oracle的程序包(Package)&#xff0c;对包的基础进行学习常见内置程序包的使用Package1、DBMS_OUTPUT包2、DBMS_XMLQUERY包3、DBMS_RANDOM包4、UTL_FILE包5、DBMS_JOB包6、DBMS_LOB包7、DBMS_SQL包8、DBMS_LOCK包9、DB…

【网络】传输层 -- 详解IP协议及IP协议的分片原理

目录 一、IP协议基本概念二、IP协议头格式1、报头和有效载荷如何分离2、有效载荷是如何向上交付&#xff08;分用&#xff09;的3、具体IP报头 三、网段划分1、什么是网段划分2、如何进行子网划分&#xff1f;再次理解子网划分及如何划分 3、私有IP地址和公网IP地址4、路由 四、…

虚拟机备份数据自动化验证原理

备份数据成功备份下来了&#xff0c;但是备份数据是否可用可靠&#xff1f;对于这个问题&#xff0c;最好最可靠的方法是将备份数据实际恢复出来验证。 但是这样的方法&#xff0c;不仅费时费力&#xff0c;而且需要随着备份数据的定期产生&#xff0c;还应当定期做备份数据验…

opencv知识库:利用cv2.resize()函数进行图像缩放

引言 在numpy知识库&#xff1a;深入理解numpy.resize函数和数组的resize方法中&#xff0c;小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看&#xff0c;numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名&…

c语言中 , x++ 和 ++x的区别

一 c语言中 , x 和 x的区别 x 和 x 是 C 语言中的自增运算符&#xff0c;它们的区别在于它们的执行时机和返回值&#xff1a; 1. x (后缀自增): 先使用变量的值&#xff0c;然后再将变量的值加 1。这意味着&#xff0c;如果你在一个表达式中使用了 x&#xff0c;那么该表达式…

Java面试题(每天10题)-------连载(41)

目录 Spring篇 1、什么是Spring框架&#xff1f;Spring框架主要有哪些模块&#xff1f; 2、使用Spring框架能带来哪些好处&#xff1f; 3、什么是控制反转&#xff08;IOC&#xff09;&#xff1f;什么是依赖注入&#xff1f; 4、解释下Spring中的IoC? 5、BeanFactory和…

基于eBPF监测DOS攻击

本文实现一个简单的eBPF模块代码示例&#xff0c;用于监测可能的DOS攻击。在此示例中&#xff0c;我们使用eBPF的kprobe功能来监视netif_receive_skb系统调用&#xff0c;以在接收网络数据包之后执行一些检查。 c #include <linux/bpf.h> #include <linux/if_ether.h…

Fiddler抓包工具之fiddler设置弱网测试

弱网测试 概念&#xff1a;弱网看字面意思就是网络比较弱&#xff0c;我们通称为信号差&#xff0c;网速慢。 意义&#xff1a;模拟在地铁、隧道、电梯和车库等场景下使用APP &#xff0c;网络会出现延时、中断和超时等情况。 Fiddler弱网测试流程&#xff1a; 一、限速操作…

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍IIC通信简单介绍掉电保…

使用Python免费调用通义千问大模型

Qwen-72b开源模型 模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象&#xff0c;例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中&#xff0c;模型也是一种方法&#xff0c;用…

仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能

仿京东淘宝商品列表筛选组件&#xff1a;实现一个高效的侧边栏弹框筛选功能 一、引言 随着电子商务的快速发展&#xff0c;用户体验成为了竞争的关键因素。在众多的电商网站中&#xff0c;如京东和淘宝&#xff0c;商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本…

使用JSP+Servlet+MySQL实现登录注册功能

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

【电路笔记】-并联电阻

并联电阻 文章目录 并联电阻1、概述2、并联电阻示例13、并联电阻示例24、并联电阻电路中的电流5、并联电阻器示例36、总结 当电阻器的两个端子分别连接到另一个或多个电阻器的每个端子时&#xff0c;电阻器被称为并联连接在一起。 1、概述 与之前的串联电阻电路不同&#xff0…

神经网络 模型表示2

神经网络 模型表示2 使用向量化的方法会使得计算更为简便。以上面的神经网络为例&#xff0c;试着计算第二层的值&#xff1a; 我们令 z ( 2 ) θ ( 1 ) x {{z}^{\left( 2 \right)}}{{\theta }^{\left( 1 \right)}}x z(2)θ(1)x&#xff0c;则 a ( 2 ) g ( z ( 2 ) ) {{a}…

动态规划 | 打家劫舍1、2、3

198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/ dp[i] 表示 考虑到下标为 i &#xff08;包括i&#xff09;的房子&#xff0c;可以偷到的最大金额。 dp[i] 有两个状态&#xff0c;分别是 偷 和 不偷。 偷&#xff0c;则需要考虑前 i-2 天的最大金额…

Linux常见指令大全及周边知识:让你的命令行变得更加强大

文章目录 目录 文章目录 前言 一&#xff0c;Linux操作系统是啥&#xff1f; 二&#xff0c;Linux操作系统具有以下特点 三&#xff0c;指令的学习 1&#xff0c;指令是什么&#xff1f; 2&#xff0c;ls 指令及其常用的衍生指令&#xff1a; 周边知识&#xff1a; ls…

高效配置Python应用:使用Hydra探索新视野

简介&#xff1a;Python开发中经常面临如何管理大量配置参数的困扰Python库 - Hydra&#xff0c;它由Facebook研究团队开发&#xff0c;并旨在帮助开发者简化应用配置的复杂性。作为一个开源Python库&#xff0c;设计用来帮助开发者更高效地创建、组织和管理复杂的应用程序配置…

async/await的实现原理(手动实现)

为什么要引入async/await操作符&#xff1f; 对于js的异步编程场景&#xff0c;无论是使用xhr回调还是promise回调&#xff0c;当异步操作过多并且每个动作之间存在依赖关系&#xff08;即需要串行执行&#xff09;时&#xff0c;代码的可读性和维护性会变得很差。async/await…