目录

什么是HSE

什么是HSI

配置HSE外部高速时钟

HSE配置

HSI配置


什么是HSE      

        HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从 4-16MHZ 不等。当 使用有源晶振时,时钟从 OSC_IN 引脚进入,OSC_OUT 引脚悬空,当选用无源晶振时,时钟从 OSC_IN 和 OSC_OUT 进入,并且要配谐振电容。

HSE 最常使用的就是 8M 的无源晶振。当确定 PLL 时钟来源的时候,HSE 可以不分频或者 2 分 频,这个由时钟配置寄存器 CFGR 的位 17:PLLXTPRE 设置,我们设置为 HSE 不分频。

什么是HSI

 HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。

HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振 荡器短。然而,即使在校准之后它的时钟频率精度仍较差。

在这里通过外部时钟或者内部时钟的一步一步配置来达到自己想要的时钟;

配置过程顺着这个图来;

配置HSE外部高速时钟

注:因为系统定义为频率为72M,所以想要修改频率的话,必须在修改之前把频率在此初始化

1、开启 HSE/HSI ,并等待 HSE/HSI 稳定

2、设置 AHB、APB2、APB1 的预分频因子

3、设置 PLL 的时钟来源,和 PLL 的倍频因子,设置各种频率主要就是在这里设置

4、开启 PLL,并等待 PLL 稳定

5、把 PLLCK 切换为系统时钟 SYSCL

HSE配置

void HSE_SetSysClk(uint32_t RCC_PLLMul_x)
{ErrorStatus    HSEStartupStatus;//先把时钟初始化RCC_DeInit();//打开HSERCC_HSEConfig(RCC_HSE_ON);//等待打开,打开需要一段时间,并且之后还得检测一下是否打开HSEStartupStatus=RCC_WaitForHSEStartUp();//判断是否打开成功,否则跳转到最下面,执行else里面的程序if(HSEStartupStatus==SUCCESS){//打开闪存器,把其他几个数据存入,待用FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//设置闪存的周期,这里按最大的来,大了没事,小了就会还有数据没进来FLASH_SetLatency(FLASH_Latency_2);//把其他数据开始存入RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK2Config(RCC_HCLK_Div1);//调整倍率RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_x);//打开PLL,这里如果你是使用其他的配置时钟的话例如:HSE/HSI/PLLRCC_PLLCmd(ENABLE);//等待PLL稳定while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//稳定之后把系统时钟换成我们配置的时钟RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//等待时钟修改成功while(RCC_GetSYSCLKSource()!=0X08);       }else{//这里就是时钟未开启成功后干的事,比如储存重要数据啊;while(1);}}

 HSI配置

//HSI配置过程如下,和HSE配置一样,这里我就不解释了void HSI_SetSysClk(uint32_t RCC_PLLMul_x)
{__IO  uint32_t HSIStartUpStatus=0;RCC_DeInit();RCC_HSICmd(ENABLE);HSIStartUpStatus = RCC->CR & RCC_CR_HSIRDY;if(HSIStartUpStatus==RCC_CR_HSIRDY){FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);FLASH_SetLatency(FLASH_Latency_2);RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK2Config(RCC_HCLK_Div1);RCC_PLLConfig(RCC_PLLSource_HSI_Div2,  RCC_PLLMul_x);RCC_PLLCmd(ENABLE);while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);while(RCC_GetSYSCLKSource()!=0x08);}else{while(1);}}
#include "stm32f10x.h"
#include "bsp_LED.h"
#include "bsp_rcc_clk_config.h"void Delay(uint32_t count)
{for(;count!=0;count--);}int main()
{HSE_SetSysClk(RCC_PLLMul_16);//时钟为128MHSI_SetSysClk(RCC_PLLMul_8);//时钟为64MLED_GPIO_config();while(1){  LED_G(ON);LED_B(OFF);LED_R(OFF);Delay(0XFF0FFF);LED_R(ON);LED_G(OFF);LED_B(OFF);Delay(0XFF0FFF);}}

这里主函数选择不同的频率,也就是所谓的调频,尽量不要超过板子承受的频率,防止板子烧坏;

频率越大,时间越短;所以超过板子所能承受的频率之后,它就会因为短时间内工作过多的程序而烧坏;

---参考STM32野火

STM32|HSE/HSI调频相关推荐

  1. stm32 HSE HSI

    stm32 HSE HSI 时钟树 main.c clkconfig.h clkconfig.c 时钟树 HSE_SetSysClock和HSI_SetSysClock这两个函数就是根据上面这个时钟树 ...

  2. STM32使用HSE/HSI配置时钟(六)

    STM32时钟树 系统时钟 ①HSE 高速外部时钟信号 HSE 是高速外部时钟信号,可以由有源晶振或者无源晶振提供,频率为4~16MHz.当使用有源晶振时,时钟从OSC_IN引脚进入,OSC_OUT引 ...

  3. STM32系统学习——RCC(使用HSE/HSI配置时钟)

    ** STM32系统学习--RCC(使用HSE/HSI配置时钟) ** RCC :reset clock control 复位和时钟控制器.主要讲解时钟部分,特别是要着重理解时钟树,理解了时钟树,ST ...

  4. 野火学习笔记(8) —— RCC —— 使用 HSE/HSI 配置时钟

    文章目录 1. RCC 主要作用--时钟部分 2. RCC 框图剖析-时钟部分 2.1 系统时钟 ① HSE 高速外部时钟信号 ② PLL 时钟源 ③ PLL 时钟 PLLCLK ④ 系统时钟 SYS ...

  5. STM32前言知识总结

    目录 关于STM32 STM32F1 存储器 位带操作 三种启动模式 低功耗模式 复位 时钟系统 STM32库 仿真器和调试器 注:本文大部分内容来自于STMCU官网以及STM32数据手册. STM3 ...

  6. STM32 USB基础知识

    文章目录 拓展阅读 前言 一.USB基础知识 二.USB2.0 1.usb2.0模式说明 2.USB2.0全速USB和高速USB的识别过程分析 3.usb协议关系 4.USB2.0与USB1.x 硬件 ...

  7. STM32系统时钟设置(标准库)

    1.STM32F407时钟树 2.系统时钟相关的结构 HSE高速外部时钟信号 锁相环PLL 锁相环的主要作用就是对时钟进行倍频,然后把时钟输出到各个功能部件.PLL有两个,一个主PLL,另一个是专用的 ...

  8. [野火]STM32 F103 HAL库开发实战指南笔记之简单外设总结

    1.GPIO编程总结 使能 GPIO 端口时钟: 初始化 GPIO 目标引脚为推挽输出模式: 编写简单测试程序,控制 GPIO 引脚输出高.低电平. 这部分宏控制 LED 亮灭的操作是直接向 BSRR ...

  9. [野火]STM32 F103 HAL库开发实战指南笔记之基础总结

    1.本书配套的仿真器为 Fire-Debugger,遵循 ARM 公司的 CMSIS-DAP 标准,支持所有基于 Cortex-M 内核的单片机,常见的 M3.M4 和 M7 都可以完美支持.Fire ...

最新文章

  1. 从IaaS到SaaS,腾讯二十年自研技术云上集结
  2. 马哥linux2020博客,马哥linux学习(bash shell学习)
  3. Linux-/proc目录简介
  4. Android按两次返回键退出应用
  5. mysql查询流程解析及重要知识总结
  6. Linux as4开启telnet,Red hat AS4开启telnet过程
  7. 关于IM Robot的一些资料【转载】
  8. ssis 有条件拆分_SSIS条件拆分概述
  9. 让Windows 7变成WIFI热点
  10. 【问】SQL 2008安装一直提示重启计算机失败
  11. C语言计算阶乘及阶乘的和
  12. 数据增强:模拟雨天算法Python
  13. Win11右键怎么直接打开所有选项?
  14. Synchronized详细介绍之锁升级过程
  15. 7-Zip压缩包如何删除密码
  16. VSCODE下载速度慢的问题
  17. 『每周译Go』开启并发模式
  18. 系统工程学报LaTeX 模板使用心得
  19. 《剑指offer》攻略
  20. 体育馆场地预约管理系统/球馆管理系统

热门文章

  1. bryntum gantt 5.0.6
  2. sketch插件导出html,Sketch插件根据命名导出HTML片段Sketch Emmet
  3. 计算机连接不上蓝牙鼠标,蓝牙鼠标连接不上电脑怎么办_蓝牙鼠标连接不上电脑的解决办法...
  4. 斗音视频制作技巧和分享技巧
  5. 使用KOG数据库进行注释
  6. UVALive 6657 GCD XOR
  7. 压力测试软件 loadr,初学abench压力测试 - 玄大冰 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  8. yourshelf是什么意思中文_shelf是什么意思中文
  9. six MySQL 主主
  10. MusicXML 3.0 (2) - 调号