最近毕业设计需要做了一个stm32最小系统板,上电后发现延时函数不对劲,1s的led延时大概等了10s左右,初步判断晶振电路出了问题。

获取当前时钟频率方法(库函数)

定义一个全局变量:

RCC_ClocksTypeDef get_rcc_clock;    //获取系统时钟状态

RCC_ClocksTypeDef是一个结构体

定义如下

typedef struct
{
  uint32_t SYSCLK_Frequency;  /*!< returns SYSCLK clock frequency expressed in Hz */
  uint32_t HCLK_Frequency;    /*!< returns HCLK clock frequency expressed in Hz */
  uint32_t PCLK1_Frequency;   /*!< returns PCLK1 clock frequency expressed in Hz */
  uint32_t PCLK2_Frequency;   /*!< returns PCLK2 clock frequency expressed in Hz */
  uint32_t ADCCLK_Frequency;  /*!< returns ADCCLK clock frequency expressed in Hz */

}RCC_ClocksTypeDef;

然后在main函数中获取当前系统时钟

RCC_GetClocksFreq(&get_rcc_clock);  //仿真的时候就可以在结构体get_rcc_clock中看见各个外设的时钟了,然后设置断点调试查看

                        
原文链接:https://blog.csdn.net/czhzasui/article/details/80238156

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐