当前位置: 首页 > news >正文

STM32 不同时钟频率有什么不同的影响

#STM32为什么需要RCC时钟树

        单片机本质上,是一个复杂的时序电路,而时序电路的行为依赖于,时钟信号来控制状态的变化,和数据的流动,如果没有时钟信号,单片机内部的时序逻辑将无法工作,整个系统将失去还有控制。

 时序电路:这是一种数字逻辑电路类型,输出取决于输出信号,和历史信号(电路之前的状态),通过存储原件保持状态信息,同时通过时钟信号来同步状态的更新。

 执行指令:指令的执行分为,取指,解码,执行,返回结果,而时钟信号为这些步奏,提供了时间基准,能过准确的执行指令

定时器使用:定时器功能中,计数还有输出PWM,这两个功能都需要时钟的控制,定时器还有计数器广泛生成精确的时间延迟。

单片机是时序电路,所以需要时钟树————————铁头山羊(B站)


#时钟频率的不同意味着什么

        可能有的小伙伴单纯的认为,不同的时钟频率就是时钟频率不同,时钟频率意味着不同的执行速度,意味着相同单片机,不同的性能,同时部分外设要求限制相关频率,下面讲。

        这里使用 STM32F103用来论证,Cortex - M3内核,时钟频率72Mhz,每条指令平均需要一条时钟周期。

理解时钟频率:单片机的时钟频率表示的是每秒钟时钟信号的周期数,通常以(hz)为单位,8Mhz意味着每秒钟有  8000,000个时钟周期

指令执行时间:最终的代码都会转化为指令,去由CPU去执行,这些指令的执行需要时钟周期,不同时钟周期在不同频率下所用时间不同,具体时间受时钟频率,内核架构不同收到影响,

        这里举例是,STM32F103用来论证,Cortex - M3内核,时钟频率72Mhz,每条指令平均需要一条时钟周期,用这个来论证执行时间。

计算不同频率下时钟周期所用时间:

                不同的频率下时钟周期,执行时间也不一样,公式如下,fclk 单片机时钟频率,Tclk 时钟周期执行时间,这里带入计算,

                                                        Tclk​=​1/​fclk

                                                Tclk​=1​/72×10 6(6次方)≈13.89 ns

        每条指令在 Cortex-M3 内核、时钟频率为 72 MHz 的条件下,平均执行时间约为 13.89 纳秒。

#验证不同频率的执行速度

       前言: 这里是参考铁头山羊老师的,在STM32默认时钟频率为8Mhz,的情况下每个for循环需要8个指令周期,循环判断条件1000,000,近似每条for循环执行时间需要1s,

 while (1){uint32_t i ;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);for(i = 0;i<1000000;i++){}HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);for(i = 0; i<1000000;i++){}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

        实验现象,在默认情况下,板载LED闪烁频率为2s,如果将GPIOC挂载的总线使用STM32CubleMX配置为72Mhz,这个时候就会发现,执行的速度就会更快了。

                        欢迎指正,希望对你,有所帮助!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 云计算实训室的核心功能有哪些?
  • Xcode 16 beta3 真机调试找不到 Apple Watch 的尝试解决
  • 人工智能算法工程师(中级)课程12-PyTorch神经网络之LSTM和GRU网络与代码详解1
  • BL201分布式I/O耦合器连接Profinet网络
  • Win11鼠标卡顿 - 解决方案
  • [word] word表格跨页断开实现教程 #职场发展#媒体
  • pycharm如何debug for循环里面的错误值
  • COD论文学习 ZoomNext
  • SAP ABAP性能优化
  • 输出调节求解跟踪问题(二阶线性系统)
  • 机器人产业发展格局多元化,创业公司突破瓶颈需多维施策
  • django中日志模块logging的配置和使用
  • OpenCV教程:cv2如何把两张图片的大小,设置成相同的宽高
  • 【学习笔记】无人机系统(UAS)的连接、识别和跟踪(一)-3GPP TS 23.256 技术规范概述
  • 简约的悬浮动态特效404单页源HTML码
  • [译] 怎样写一个基础的编译器
  • 2017年终总结、随想
  • Angular 2 DI - IoC DI - 1
  • Centos6.8 使用rpm安装mysql5.7
  • CSS 专业技巧
  • CSS3 变换
  • Linux后台研发超实用命令总结
  • MYSQL 的 IF 函数
  • php的插入排序,通过双层for循环
  • Terraform入门 - 1. 安装Terraform
  • 工作中总结前端开发流程--vue项目
  • 回顾2016
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 你对linux中grep命令知道多少?
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • zabbix3.2监控linux磁盘IO
  • 容器镜像
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ‌移动管家手机智能控制汽车系统
  • ## 1.3.Git命令
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (四)事件系统
  • (算法二)滑动窗口
  • (一) 初入MySQL 【认识和部署】
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)Linq学习笔记
  • (转)关于pipe()的详细解析
  • .net Signalr 使用笔记
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 设计一套高性能的弱事件机制
  • .NET 直连SAP HANA数据库
  • .NET8使用VS2022打包Docker镜像
  • .Net中wcf服务生成及调用
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @RequestMapping-占位符映射
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)