• 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,

    1. while (1)
    2. {
    3. uint32_t i ;
    4. HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
    5. for(i = 0;i<1000000;i++){}
    6. HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
    7. for(i = 0; i<1000000;i++){}
    8. /* USER CODE END WHILE */
    9. /* USER CODE BEGIN 3 */
    10. }

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

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

  • 相关阅读:
    Centos7使用Nginx配置HTTPS正向代理
    CGO,基本数据类型转换2 和 函数调用
    es_04
    1panel + Pbootcms 设置伪静态规则
    Windows权限维持
    安装WordPress(个人建站)
    Postman接口自动化测试之——批量参数化(参数文件)
    CSS transition 过渡
    Python 关于整除以及负数取余遇到的问题
    TX2 open ttyTHS2
  • 原文地址:https://blog.csdn.net/weixin_62292999/article/details/140429930