/其实在system_stm32f10x.c文件中有设置72MHz的函数,本文是我在学习STM32最底层用寄存器与固件库开发时写的一个例子,当做笔记发在博客上,希望对同样从STM32基层学起的读者有帮助。有很多地方寄存器的操作得看数据手册,这是很重要的。/
#include"stm32f10x.h"
#include"clock.h"
#define PLL_TimeOut ((uint32_t) 0x050000)
//最大计数函数,函数如果计数到0x0500000,PLL还未准备好,那就放弃。
ErrorStatus My_WaitPLLStartUp(void);
//由于标准库没有等待PLL稳定的函数,所以可以自己编写一个;
void Set_SysClock72Mhz(void)
{
uint32_t PLL_SYS = 0,FaultTime = 0;//一个关于PLL与SYSCLK转换状态的判断变量。
RCC_HSEConfig(RCC_HSE_ON);//打开外部时钟开关;
if(RCC_WaitForHSEStartUp() == SUCCESS)//这里用到的是判断HSE是否准备好的库函数。为啥要判断?
//因为HSE和PLL一样,打开开关后需要一定时间才能稳定。
{
FLASH->ACR |= 0x10;
FLASH ->ACR &= (~0X03);
FLASH->ACR |=(0x02);//内存区的操作,可以不用理解,有兴趣的话可以去ST官网查看关于FLASH的手册

    RCC_HCLKConfig(RCC_SYSCLK_Div1);//将AHB的时钟设为系统时钟的1分频;RCC_PCLK1Config(RCC_HCLK_Div2);//将APB2的时钟设为AHB的2分频;RCC_PCLK2Config(RCC_HCLK_Div2);//将APB1的时钟设为AHB的2分频;RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//将SYSCLK设置为PLL9倍频,并设置HSE为PLL时钟源;RCC_PLLCmd(ENABLE);//打开PLL开关;if(My_WaitPLLStartUp() ==SUCCESS)//这里判断PLL是否稳定{RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//PLL稳定后选择PLLCLK为SYSCLK的时钟源。do{PLL_SYS = RCC->CFGR & (0x03<<2);//等待PLL转换为SYS是否成功FaultTime ++;}while((FaultTime <=0x50000)&&(PLL_SYS !=0x02));}else{//如果PLL不稳定,这里自己写代码解决。 }
}
else {//如果程序运行到这里就证明HSE未能正常工作,可以自己写代码解决
}

}

ErrorStatus My_WaitPLLStartUp(void)//自定义的PLL等待函数
{
__IO uint32_t StartUpCounter = 0;//延时计数变量
ErrorStatus status = ERROR;
FlagStatus PLLStatus = RESET; //检测PLL是否准备好的标志变量
do
{
PLLStatus = RCC_GetFlagStatus(RCC_FLAG_PLLRDY);//获取PLLRDY的状态
StartUpCounter++;
} while((StartUpCounter != PLL_TimeOut) && (PLLStatus == RESET));

if (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET)
{
status = SUCCESS;
}
else
{
status = ERROR;
}
return (status); //PLL如果准备好的话会由硬件电路将PLLRDY置一,由此判断如果准备好的话就返回SUCCESS,否的话返回ERROR

}

HGP:STM32的用标准库函数自己编写的关于设置系统时钟72Mhz的函数相关推荐

  1. keil建立stm32工程即标准库函数目录结构

    建立keil stm32工程文件 1. 标准库函数目录结构 需要分清库函数和keil的pack包,前者是ST公司对ST系列芯片编写的库函数,其中包括芯片的的启动文件和外设配置函数文件,后者是Keil ...

  2. tm4c123gxl库函数调包侠养成(一)——————基本系统时钟与delay函数

    一.tm4的环境 本人使用的是ccs系统,安装教程网上很多,这里不一一赘述.ccs内部的集成允许tm4单片机编译下载调试仅靠数据线就可以完成,而不用独立的jlink,也算是其进步之处吧. 二.系统时钟 ...

  3. STM32直接用寄存器设置系统时钟

    时钟对单片机的重要性,就如同心脏对人的重要性,它能驱动处理器内核完成指令,外设也在它的驱动下完成动作.总而言之,时钟是单片机里很重要的一项.那么,我们为什么要设置系统时钟呢?有的外设需要的工作频率不一 ...

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

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

  5. 【STM32】STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲

    [STM32]STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲 一.前言 二.时钟是什么 三.时钟树 1.时钟树图 2.时钟树讲解 左边部分 中间部分 右边部分 特殊部分 四.初始化 ...

  6. STM32开发笔记48:STM32F4+DP83848以太网通信指南系列(二):系统时钟

    本章为系列指南第二章,主要是介绍一下STM32F4的时钟配置.时钟是一个嵌入式产品从零开始开发的基石,一切逻辑都在时钟的节奏中安静地弹奏着,时钟为整个电路带来了欢快的「心跳」.开发者如果对时钟没有控制 ...

  7. STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

    STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空. 2)对于少于100脚的产品,有2种接法:   ...

  8. 【STM32】系统时钟RCC详解(超详细,超全面)

    转载:https://blog.csdn.net/as480133937/article/details/98845509 1什么是时钟 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的 ...

  9. STMF4编写系统时钟

    目录 STMF4时钟系统重点概要 HSE作为系统时钟配置方法(附带程序) 正点开发板晶振问题(不同频率晶振配置方法) STM F407时钟系统概要 时钟框图 设置系统时钟SYSCLK.设置AHB 分频 ...

最新文章

  1. 3dmax2021入门学习教程
  2. go ssh 执行多个命令_每天一个 Linux 命令(92): dirname 命令
  3. new TypeToken<List>>(){}.getType() 是什么意思
  4. python多进程队列中的队列_python 多进程队列数据处理详解
  5. ipv6 服务器虚拟机软件,ipv6虚拟主机是做什么的
  6. win7 双屏 双工具栏_不知道这几个双屏操作技巧,你的显示器就白买了
  7. node path html模块,深入理解node.js之path模块
  8. python怎么隐藏输入法,隐藏输入法和弹出输入法
  9. 基于visual Studio2013解决面试题之1305字符串所有子集
  10. nginx不缓存html页面耗性能,加速nginx性能: 开启gzip和缓存
  11. 软件测试:面试屡屡碰壁,只因你身上少了这几个特征!
  12. 基于GPT2的中文闲聊机器人/GPT2 for Chinese chitchat
  13. Linux使用Mac键盘,System76 推出 Linux 键盘 看完手痒了!
  14. 处理百万级以上的数据处理
  15. cfb为什么不需要填充_高压输电线路中为什么只有相线不需要零线
  16. 任意版本JLink驱动官方下载指引
  17. 快易准粤语拼音输入法 绿色
  18. OpenGL的环境光、点光源、聚光灯、方向光、材质的定义。
  19. python数据类型的转化和获取
  20. 联合办公空间该如何继续发展?

热门文章

  1. 全国大学生创新创业实践联盟-创新创业-按序学习:
  2. opencv-python 实时获取摄像头数据并实时显示。
  3. 阿里架构师直通车:Netty+NIO+Redis+Kafka共计13.62G,一键入职
  4. Js的次方(幂)表示方法:基数 **指数 或 Math.pow(基数,指数)
  5. 地理模块化施工的优点_广东肇庆市德庆县2020届高三地理复习专题之交通建设带来的意义及模块化施工的优点...
  6. 12个免费学习编程的网站
  7. uniapp返回上一页执行上一页方法
  8. Transwarp KunDB 备份恢复工具安装和备份工作自动化
  9. 前端之样式化链接、web字体
  10. 【项目管理】原则之三--有效地干系人参与