配置系统时钟(stm32)
一、使用HSE配置系统时钟的过程
1.开启HSE,并等待HSE稳定
__IO uint32_t HSEStartUpStatus = 0;
// 使能HSE,开启外部晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待HSE启动稳定
HSEStatus = RCC_WaitForHSEStartUp();
注:在判断是否HSE启动的时候,不用函数RCC_GetFlagStatus()获取状态位来判断,是因为RCC_WaitForHSEStartUp()函数不仅包含了RCC_GetFlagStatus(),即要检测状态位,也要做超时处理HSE_STARTUP_TIMEOUT
2.设置AHB、APB2、APB1的预分频因子
// AHB预分频因子设置为1分频,HCLK = SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1); // APB2预分频因子设置为1分频,PCLK2 = HCLK
RCC_PCLK2Config(RCC_HCLK_Div1); // APB1预分频因子设置为1分频,PCLK1 = HCLK/2
RCC_PCLK1Config(RCC_HCLK_Div2);
3.设置PLL的时钟来源,和PLL倍频因子,开启PLL,等到PLL稳定
// 设置PLL的来源为HSE,PLL来源可以是HSE和HSI/2
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, pllmul);
// 使能PLL
RCC_PLLCmd(ENABLE);
// 等待PLL稳定while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
4.将系统时钟SYSCLK来源设置为PLLCLK
// PLLCLK稳定之后,将PLL时钟设置为系统时钟,系统时钟可以来自于
// HSI,PLLCLK,HSE
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 读取时钟切换状态位,确保PLLCLK为系统时钟while (RCC_GetSYSCLKSource() != 0x08){}
二、代码
//pllmul = RCC_PLLMuL_10,设置系统为80MHz
void HSE_SetSysClock(uint32_t pllmul)
{__IO uint32_t HSEStartUpStatus = 0;// 把RCC寄存器复位成复位值RCC_DeInit();// 使能HSE,开启外部晶振RCC_HSEConfig(RCC_HSE_ON); //等待HSE启动稳定HSEStatus = RCC_WaitForHSEStartUp();if (HSEStartUpStatus == SUCCESS){// 使能FLASH 预存取缓冲区,这部分是在代码执行过程中,会//将代码一部分放入缓冲区FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);// 闪存访问时间设置为SYSCLK周期的2倍FLASH_SetLatency(FLASH_Latency_2);// AHB预分频因子设置为1分频,HCLK = SYSCLK RCC_HCLKConfig(RCC_SYSCLK_Div1); // APB2预分频因子设置为1分频,PCLK2 = HCLKRCC_PCLK2Config(RCC_HCLK_Div1); // APB1预分频因子设置为1分频,PCLK1 = HCLK/2 RCC_PCLK1Config(RCC_HCLK_Div2);// 设置PLL的来源为HSE,PLL来源可以是HSE和HSI/2RCC_PLLConfig(RCC_PLLSource_HSE_Div1, pllmul);// 使能PLLRCC_PLLCmd(ENABLE);// 等待PLL稳定while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}// PLLCLK稳定之后,将PLL时钟设置为系统时钟,系统时钟可以来自于// HSI,PLLCLK,HSERCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);// 读取时钟切换状态位,确保PLLCLK为系统时钟while (RCC_GetSYSCLKSource() != 0x08){}}else{// 如果HSE开启失败,那么程序就会来到这里,用户可在这里添加出错的代码处理// 当HSE开启失败或者故障的时候,单片机会自动把HSI设置为系统时钟,// HSI是内部的高速时钟,8MHZwhile (1){}}}
配置系统时钟(stm32)相关推荐
- STM32F1系列HAL库配置系统时钟
STM32F1系列HAL库配置系统时钟 其实一开始对于时钟我也是知之甚少,在MSP432中我就一直忽视时钟配置,其实也是在STM32学习时落下的病根,现在趁有空补一下. 时钟简单讲解 对于时钟系统,在 ...
- stm32f107外设晶振8MHZ换成25MHZ 配置系统时钟72MHZ
参考https://blog.csdn.net/ddffyhg/article/details/123015356 修改倍频参数
- STM32入门笔记(03):系统时钟控制 RCC (STM32CubeMx 初始化配置)
目的/起源: B站@立邦大侠 的在视频里面提到,他用STM32CubeMx 更清晰地进行STM32系统时钟配置以及时钟架构. STM32 开发流程 : 芯片选型 - 原理图设计 - PCBlayout ...
- STM32系统时钟配置及时钟树
参考资料:< STM32F4xx 中文参考手册> RCC 章节. STM32时钟可大致分为系统时钟和其它时钟两大类,总共包含5个时钟源 HSI(High Speed Internal Cl ...
- STM32使用内部时钟HSI作为系统时钟及配置Systick定时器
参考:https://blog.csdn.net/huangyangquan/article/details/78790443 https://www.cnblogs.com/dustinzhu/p/ ...
- 如何设置STM32的系统时钟(SYSCLK)
目录 1.STM32F407 的时钟来源 1.1.HSI 时钟 1.2.HSE 时钟 1.3.主 PLL 时钟 2.时钟树 3.配置系统时钟 3.1.系统时钟有关寄存器 3.2.使用系统的默认配置 3 ...
- STM32开发笔记48:STM32F4+DP83848以太网通信指南系列(二):系统时钟
本章为系列指南第二章,主要是介绍一下STM32F4的时钟配置.时钟是一个嵌入式产品从零开始开发的基石,一切逻辑都在时钟的节奏中安静地弹奏着,时钟为整个电路带来了欢快的「心跳」.开发者如果对时钟没有控制 ...
- STM32系统时钟设置(标准库)
1.STM32F407时钟树 2.系统时钟相关的结构 HSE高速外部时钟信号 锁相环PLL 锁相环的主要作用就是对时钟进行倍频,然后把时钟输出到各个功能部件.PLL有两个,一个主PLL,另一个是专用的 ...
- 【STM32】STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲
[STM32]STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲 一.前言 二.时钟是什么 三.时钟树 1.时钟树图 2.时钟树讲解 左边部分 中间部分 右边部分 特殊部分 四.初始化 ...
最新文章
- 彻底搞懂Nginx的五大应用场景
- A标签的href设置为#代表什么意思?
- 现在的人工智能逆天到什么地步了?
- Canvas-图片旋转
- linux 网络 PING IP可以通,ping域名ping不通
- mysql主从之slave-skip-errors和sql_slave_skip_counter
- bzoj 3396: [Usaco2009 Jan]Total flow 水流(最大流)
- 【iOS开发】@property跟成员变量区别
- android uses-permission 配置详解
- 智能优化算法:晶体结构算法-附代码
- CSS display 常用属性小结
- Java私塾中级note
- Smart SVN客户端使用
- html文字边框颜色,css背景颜色/文字/边框 设置渐变色
- CentOS添加管理员账号
- 阿拉伯数字转大写金额(支持简体和繁体)
- 1449:【例题2】魔板
- 数列的操作 div2
- Windows10安装DM8-达梦数据库
- 解决办法 Field userService in com.sxsj.controller.RegistLoginController required a bean of type
热门文章
- mysql master host_MySQL5.5.28配置master-maser复制,master-host等参数不用了
- CPU位数、操作系统位数、指令集、寄存器位数、机器字长等
- Android使用usb线传输大文件笔记
- 解决IndexError: Target 2 is out of bounds.
- python open unicodedecodeerror_python 读取文件时报错UnicodeDecodeError: 'gbk' co
- php mysql bootstart_PHP+MySQL+Bootstrap 美食主题博客项目
- html背景图片带边框,css 使用background背景实现border边框效果
- 中兴捧月大赛之方案探讨
- Java画布:直线三角形,矩形,椭圆等
- PhpSpreadsheet中文文档 | 基础Spreadsheet开发使用示例