STM32——关于时钟源的实际使用及解释

1、STM32内部有5个时钟源,分别为HSI、HSE、LSE、LSI、PLL。

HSE:高速外部时钟,可接石英谐振器、陶瓷谐振器,或者接外部时钟源,其频率范围为4MHZ~16MHZ。

LSE: 低速外部时钟,接频率为32.768KHZ的石英晶体。

HSI:高速内部时钟,RC振荡器,频率为8MHZ。

LSI:低速内部时钟,RC振荡器,频率为40KHZ。

PLL:锁相环倍频输出。其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频选择2~16倍,但是其输出频率最大不得超过72MHZ。

6688f0e17cb344ada371ba0fd1537cca.png

2、根据STM32F103的参考手册,我们能够看到LSE和LSI未通向AHB预分频器,即未参与挂载在AHB总线上的各种外设。

LSE是用来个RTC(实时时钟)来提供准确的时钟信号。

LSI是一种低功耗,高精度的时钟信号,是一种以内部电源为驱动的振荡器,适用于一些应用场景,尤其是对功耗要求较高的场合,用于供给独立看门狗和自动唤醒单元使用。

3、在程序中如何使用HSE和HSI?

1、LED.C#include "stm32f10x.h"                  // Device header
#include "Delay.h"void LED_Init(void)
{/*当我们直接在程序中使用RCC_APB2PeriphClockCmd时,其是由内部时钟控制的。它用于使能或禁用外设的时钟,通过控制内部时钟的分频器来控制外设的时钟。*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);	//开启APB2外设时钟GPIO_DeInit(GPIOC);	//对整个GPIOC引脚进行复位操作GPIO_InitTypeDef GPIO_InitStructure;	//声明结构体GPIO_InitStructureGPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);}void LED(void)
{GPIO_WriteBit(GPIOB,GPIO_Pin_7,(BitAction)0);	//BitAction为强制类型转换符Delay_ms(500);GPIO_WriteBit(GPIOB,GPIO_Pin_7,Bit_SET);Delay_ms(500);
}void PC13_ON(void)
{GPIO_ResetBits(GPIOC,GPIO_Pin_13);		//低电平点亮PC13LED灯Delay_ms(500);
}void PC13_OFF(void)
{GPIO_SetBits(GPIOC,GPIO_Pin_13);		//高电平点亮PC13LED灯Delay_ms(500);
}uint8_t LED_GetNum(void)
{return GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13 ); //读取PC13号端口的输入值
}

feb16ef87a234f31a76cd7bf5875ced8.png

 


void HSE_Init(uint16_t PLL)
{ErrorStatus HSEStart_UpStatus;//将RCC寄存器重新设置为默认值RCC_DeInit();//打开外部高速时钟晶振HSERCC_HSEConfig(RCC_HSE_ON);//等待外部高速时钟晶振工作HSEStart_UpStatus = RCC_WaitForHSEStartUp();if(HSEStart_UpStatus == SUCCESS) 	//SUCCESS:HSE晶振稳定且就绪{//设置AHB时钟RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置高速AHB时钟RCC_PCLK2Config(RCC_HCLK_Div1);//设置低速AHB时钟RCC_PCLK1Config(RCC_HCLK_Div2);//设置FLASH存储器延时时钟周期数FLASH_SetLatency(FLASH_ACR_LATENCY_2);//选择FLASH预取指缓存的模式FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//设置PLL时钟源及倍频系数switch(PLL){case 2:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_2);break;case 3:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_3);break;case 4:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_4);break;case 5:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_5);break;case 6:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_6);break;case 7:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_7);break;case 8:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_8);break;case 9:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);break;default:RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_2);break;}//使能PLLRCC_PLLCmd(ENABLE);//检查指定的RCC标志位while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}//设置系统时钟(SYSCLK)RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//RCC_SYSCLKSource_PLLCLK选择PLL作为系统时钟//PLL返回用作系统时钟的时钟源/*** @brief  Returns the clock source used as system clock.* @param  None* @retval The clock source used as system clock. The returned value can*   be one of the following:*     - 0x00: HSI used as system clock*     - 0x04: HSE used as system clock*     - 0x08: PLL used as system clock*/while(RCC_GetSYSCLKSource()!= 0X08){}}
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15518.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的高精度Caltech行人检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度Caltech数据集行人检测识别系统可用于日常生活中或野外来检测与定位行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的行人目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv…

电源频率检测器/采用555时基电路的过流检测器电路设计

电源频率检测器 对于某些电子仪器和电气设备,对见六电源的频率有着一定的要求,电源频率高于或低于 50Hz,都会影响设备的正常工作,甚至造成仪器和设备的损坏。因此,对于此类设备需要装设电源频率检测装置,当…

软件工程师,学习下JavaScript ES6新特性吧

概述 作为一名软件工程师,不管你是不是前端开发的岗位,工作中或多或少都会用到一点JavaScript。JavaScript是大家所了解的语言名称,但是这个语言名称是Oracle公司注册的商标。JavaScript的正式名称是ECMAScript。1996年11月,JavaS…

【后端面经-Java】I/O多路复用 简录

【后端面经-Java】I/O多路复用 简录 0. Java 线程IO模型1. BIO2. NIO3. I/O多路复用(主要)3.1 概念3.2 实现1. select2. poll3. epoll 4. AIO5. 技术对比5.1 BIO、NIO、I/O多路复用、AIO对比5.2 select、poll、epoll对比 6. 面试模拟参考资料 0. Java 线…

我国新能源汽车存量已突破1620万辆,登记数量创历史新高

根据公安部发布的最新数据,截至2023年6月底,全国的机动车数量达到4.26亿辆,其中汽车数量为3.28亿辆,新能源汽车数量为1620万辆。与此同时,机动车驾驶人口达到5.13亿人,其中汽车驾驶人口为4.75亿人。在2023年…

从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145

目录 606. 根据二叉树创建字符串 - 力扣(LeetCode) 解析代码: 102. 二叉树的层序遍历 - 力扣(LeetCode) 解析代码: 107. 二叉树的层序遍历 II - 力扣(LeetCode) 解析代码&…

Microsoft 宣布今年底关闭开源软件托管平台 CodePlex

Microsoft 宣布,将关闭开源软件托管平台 CodePlex。Microsoft 2006 年推出这项服务,并决定在今年 12 月 15 日将其关闭。 Microsoft 公司副总裁 Brian Harry 在网上博客中写道,人们将可以下载他们的数据档案,Microsoft 正与面向开…

CMake之CPack

文章目录 一、CPack1.用CPack打包成为deb包2.如何确定的Depends依赖包?3.如何确定编译Build-Depends?4.Cpakc打包RPM包 二、deb的简单使用三、deb包相关文件说明1.control文件2.preinst文件3.postinst文件4.prerm文件5.postrm文件 一、CPack CPack 是 CMake 2.4.2…

(转载)支持向量机(SVM)的回归拟合(matlab实现)

与传统的神经网络相比,SVM具有以下几个优点: (1)SVM是专门针对小样本问题而提出的,可以在有限样本的情况下获得最优解。 (2)SVM算法最终将转化为一个二次规划问题,从理论上讲可以得到全局最优解,从而解决了传统神经网…

linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

​专栏内容: postgresql内核源码分析 手写数据库toadb 并发编程 个人主页:我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 概述 信号是一种软中断的方式,让进程陷入中断处理调…

集成支付宝报错订单信息有错误,建议联系实家。 错误码: TOTAL FEE EXCEED

问题 集成支付宝报错——订单信息有错误,建议联系实家。 错误码: TOTAL FEE EXCEED 详细问题 笔者按照支付宝沙箱支付快速集成版进行操作,操作完成访问所集成的支付宝,页面如下 发起请求核心代码 response.sendRedirect("http://ip…

HCIA-HarmonyOS Application Developer学习笔记

目录 一、HarmonyOS 介绍二、HarmonyOS 应用开发流程HarmonyOS 系统架构HarmonyOS 子系统集DevEco StudioHarmonyOS 应用包结构使用资源文件的方法权限管理分布式能力 三、Ability 设计与开发Ability 的概念和分类页面生命周期Intent载体页面间导航Particle Ability 开发 四、U…