GPIO配置-PIN_Speed的理解

news/2024/7/18 10:18:56 标签: stm32

在使用STM32的GPIO 口配置时,经常会疑惑应该选用什么样的配置模式,本文谈谈对pin_speed的理解。在这里插入图片描述
根据数据手册可得,STM32提供10MHz,2MHz和50MHz三种输出速度的配置,三种配置的应用场景是怎么样的?。

1.为什么要配置引脚速度?

STM32在芯片内部的IO输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的,
当响应速度越快,功耗也就越高,同样,引脚反转的速度过快,所带来的噪声也越强了。

2.输出速度如何影响信号的噪音

信号反转频率多了功耗多很好理解,那反转速度是如何影响信号的噪音呢?
这里需要引入一个知识点
波特率:波特率是对信号传输速率的一种度量,是线路状态更改的次数,在信息传输通道中,带数据信息的信号单元叫码元,单位时间内通过信道传输的码元数称为码元传输速率,简称波特率。
简而言之,为了提高通信的速度,则需要提高单位时间内能够传输的码元数量,而在单片机信号传输过程中,GPIO是以高低电平作为信号01的表征方式的,所以反转速度越快,单位时间能够传输的码元数量就更多了。
在这里插入图片描述
但是在IO口的翻转过程中,并不是瞬时反转的,电平的转换有一定的延迟,对比2MHz和10MHz可以看到不同功耗表现下,GPIO的上升时间和下降时间存在很大的不同。
如果说输出应用的信号频率为10MHz,而在IO口配置中配置了2MHz的带宽,由于存在延迟的电平转换,2MHz比10MHz能够保持在高电平的时间小了很多。
在这里插入图片描述
这种电平在后续信号接收中是会形成很大干扰的,接收方以10MHz的波特率去读取2MHz的信号时,很可能会读取到一个在0和1之间的电压,因为此时2MHz还没有到达高电平并保持,这种电平对于接收方是无法识别和计算的。这就是噪音产生的原因。
因此,选用适当的IO口速度配置,在功耗和需求之间平衡就显得十分重要了
比如:
2MHz:适用于低频应用,如简单的LED驱动和按键检测,能够有效降低功耗和噪声。
10MHz:中等速度设置,适合一般的数字信号处理,如USART、I2C通信。
50MHz:适用于高频信号处理,如SPI通信。此设置提供最高输出频率,但也带来较大的噪声和功耗。


http://www.niftyadmin.cn/n/5544092.html

相关文章

关于 Qt在国产麒麟系统上设置的setFixedSize、setMinimumFixed、setMaxmumFixed设置无效 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140242881 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

快手矩阵管理系统:引领短视频运营新潮流

在短视频行业蓬勃发展的今天,如何高效运营和优化内容创作已成为企业和创作者关注的焦点。快手矩阵管理系统以其强大的核心功能,为短视频内容的创作、发布和管理提供了一站式解决方案。 智能创作:AI自动生成文案 快手矩阵管理系统的智能创作…

1. 倍数

倍数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 请问在 11 到 20202020 中,有多少个数既是 44 的整数倍,又是 66 的整数倍。 运行限制 最大运行时间:1s最大运行内存: 12…

PIP 换源:提升 Python 包安装速度的秘诀

一、引言 在使用 Python 进行开发时,我们经常需要通过 pip 命令安装各种库和依赖。然而,默认的源可能会因为网络原因导致下载速度缓慢,影响开发效率。这时候,换源就成为了一个非常实用的技巧。 二、为什么要换源? 提…

WPF 3D绘图 点云 系列五

基本概念:点云是某个坐标系下的点的数据集。 可能包含丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等 点云可以将现实世界原子化,通过高精度的点云数据可以还原现实世界。万物皆点云。 通过三维激光扫描仪进行数据采集获取点云数据,其次通过二维影像进行…

JAVA学习-练习试用Java实现“分发糖果”

问题: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 评分更高的孩子…

【环境搭建】MAC M3-MAX芯片安装scikit-learn库报错。

问题 首先想安装scikit-learn库在mac终端显示顺利安装完成,但是测试的时候报错如下所示: /opt/anaconda3/envs/dtc/bin/python /Users/chenfaquan/PycharmProjects/TimeSeries/data_create.py Traceback (most recent call last):File "/Users/c…

二分算法的详解

二分算法的详解 二分算法思路&#xff1a; 数组&#xff1a;3 4 4 5 5 5 6 7 下标&#xff1a;0 1 2 3 4 5 6 71、找到第一个>5的元素的位置(下标) #include<iostream> using namespace std; const int N100010; int n; int arr[N]; bool isBlue(int x){if(x<5)…