基于STM32C8T6的智能小车项目时钟配置

news2024/11/30 8:47:52

一、时钟树简介


  • HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从 3-25MHZ 不等。当使用有源晶振时,时钟从 OSC_IN 引脚进入,OSC_OUT 引脚悬空,当选用无源 晶振时,时钟从 OSC_IN OSC_OUT 进入,并且要配谐振电容。
  • HSE 最常使用的就是 8M 的无源晶振。当确定 PLL 时钟来源的时候,HSE 可以不分频 或者 2 分频,这个由时钟配置寄存器 CFGR 的位 17PLLXTPRE 设置,HSE 一般设置为不分频
  • PLL时钟源:内部高速时钟【HSI】二分频 得到PLL时钟源(HSI 是内部高速的时钟信号,频率为 8M,根据 温度和环境的情况频率会有漂移,一般不作为 PLL 的时钟来源)。HSE不分频得到PLL时钟源
  • PLL的时钟PLLCLK:可通过设置倍频因子[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],对PLL时钟来源进行倍频得到PLLCLK。由于HSE(由外接晶振决定,如果外接晶振为16M则需HSE二分频)为一般为8M,官方库文件系统时钟配置72M,所以配置为9倍频。则有我们熟知的PLLCLK=SYSCLK。
  •  系统时钟SYSCLK:由图可知系统时钟的来源可以是,HSIPLLCLK、HSE。ST 官方推荐的稳定运行时钟为72M,因此使用PLLCLK作为系统时钟的时钟来源。
  • AHB 总线时钟 HCLK:系统时钟经过AHB分频器(可[1,2,4,8,16,64,128,256,512]分频)得到HCLK至AHB总线,核心存储器、DMA。
  • APB1总线时钟HCLK1(AHB1的时钟HCLK1),HCLK 经过低速 APB 预分频器(APB1预分频器)得到,分频因子可以是:[1,2,4, 8,16],即最大为36M HCLK1=PCLK1= HCLK/2=36M
  • APB2 总线时钟 PCLK2 HCLK 经过高速 APB2 预分频器得到,分频因子可以是:[1,2,4,8,16],HCLK2 属 于高速的总线时钟,片上高速的外设就挂载到这条总线上 PCLK2 = HCLK = 72M。
  • AHB,是Advanced High performance Bus的缩写, 高级高性能总线;APB,是Advanced Peripheral Bus的缩写, 高级外设总线

二、工程配置

  • 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xxSTM32F102xx STM32F103xx微控制器。
  •  中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xxSTM32F102xx STM32F103xx微控制器。
  • 大容量产品 是指闪存存储器容量在 256K 至 512K 字节之间的 STM32F101xx STM32F103xx微控制器。

这里的容量是指FLASH的大小,判断方法如下:

  • 16KB≤FLASH≤32KB 选择:STM32F10X_LD
  • 64KB≤FLASH≤128KB 选择:STM32F10X_MD
  • 256KB≤FLASH≤512KB 选择:STM32F10X_HD

STM32F10X_MD, USE_STDPERIPH_DRIVER

三、RCC 配置

//  将HSE配置项目的时钟源  一般使用HSE配置为项目的时钟的来源
//  RCC :reset clock control 复位和时钟控制器
void Project_RCCConfig_HSE(void)
{
    // 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值
	  
	  volatile uint32_t HSEStartUpStatus=0;
	  
	  RCC_DeInit();               //  RCC时钟复位
	  RCC_HSEConfig(RCC_HSE_ON);  //  配置外部高速时钟(HSE)  外部晶振作为时钟源 硬件使用的是8M的外部晶振
	
	  HSEStartUpStatus = RCC_WaitForHSEStartUp();  //  等待HSE稳定  SUCCESS 稳定   ERROR 错误
	  if(HSEStartUpStatus==SUCCESS)
		{
		   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   // 使能FLASH 预存取缓冲区
       FLASH_SetLatency(FLASH_Latency_2);                      // 设置延迟周期
		
       RCC_HCLKConfig(RCC_SYSCLK_Div1);  // HCLK 72M
		   RCC_PCLK1Config(RCC_HCLK_Div2);   // HCLK1=PCLK1=36M=HCLK/2   低速总线时钟
       RCC_PCLK2Config(RCC_HCLK_Div1);   // HCLK2=PCLK2=72M=HCLK     高速总线时钟
			 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, 9);  // 配置锁相环时钟源和倍增因子。
       RCC_PLLCmd(ENABLE); // 开启PLL 
		
      while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);// 检查是否设置了指定的RCC标志
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);          // 当PLL稳定之后,把PLL时钟切换为系统时钟SYSCLK
      while (RCC_GetSYSCLKSource() != 0x08);              // 读取时钟切换状态位,确保PLLCLK被选为系统时钟
		}
	  
}

四、定时配置  使用定时器三统领整个项目

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python数据分析及案例详细讲解(文末赠书~)

名字:阿玥的小东东 学习:Python、C 博客主页:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 数据分析 618多得图书活动来啦 本期推荐 内容简介 作者简介 目录: 下面我将给出一个…

Spring事务--上篇

Spring事务管理 是什么 事务是逻辑上的一组操作,要么都执行,要么都不执行。 另外,需要格外注意的是:事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的 innodb引擎。但是,如果把…

智能优化算法改进-K-means聚类种群初始化附Matlab代码

目录 0引言 一、K-means聚类原理 二、K-Means聚类算法步骤 三、K-Means聚类原理图​编辑 四、K-means聚类改进智能优化算法种群初始化效果图 4.1 初始种群数据图 ​4.2 K-means聚类结果图 4.2.1 根据K-means聚类原理聚类 4.2.2 根据MATLAB自带kmeans函数聚类 五、K-…

Docker镜像的创建方法及Dockerfile案例

目录 一、基于现有镜像创建1、创建启动镜像2、生成新镜像 三、基于Dockerfile创建1、Dockerfile结构及分层2、联合文件系统3、docker镜像加载原理4、dockerfile操作常用的指令 四、Dockerfile 案例1、dockerfile构建httpd实例2、Dockerfile构建nginx实例3、Dockerfile构建tomca…

chatgpt赋能python:Python下载Pandas库教程

Python下载Pandas库教程 什么是Pandas库? Pandas是用于数据处理和数据分析的Python库,它提供了快速,灵活和全面的数据结构,如Series和DataFrame,使数据清理,分析和处理变得更加娴熟。 为什么要下载Panda…

宝塔面板备份docker,镜像打包下载到本地,镜像还原,镜像推送

目录 1. 生成镜像2. 打包镜像并下载到本地3. 镜像还原4. 镜像推送总结 欢迎关注 『发现你走远了』 博客,持续更新中 欢迎关注 『发现你走远了』 博客,持续更新中 1. 生成镜像 软件商店->点击docker管理器的设置 生成镜像 这里可以直接点击提交&#…

RNN、LSTM知识点总结

CNN——用于计算机视觉(CV) RNN——用于自然语言处理(NLP) 理解:其中h0,h1...ht-1是中间结果,x0,x1...x代表时序输入。举例:如I am Chinese,I love China&…

PS AI功能真实测评;OpenAI提示词最佳实践官方指南;产品出海的多语言场景设计策略;AI黑客松的复兴与狂欢 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 百度商业AI技术创新大赛 (CTI),报名截至7月13日 百度商业AI技术创新大赛,是面向全社会开放的全国性技术创新大…

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 详解

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 详解 功能包使用文件结构配置参数 订阅的话题具体代码轮速里程计惯导数据视觉里程计 发布的话题robot_pose_ekf 的工作原理 功能包使用 文件结构 没有launch文件夹,有两个launch文件都在外面没有config文件…

chatgpt赋能python:Python如何下载FFmpeg:必知方法及优势

Python如何下载FFmpeg:必知方法及优势 如果你是一位使用Python进行视频处理的开发者,那么推荐在项目中使用FFmpeg库。FFmpeg是一个免费开源的视频框架,可以用于解析、编码、转换和流媒体处理等多种操作。本文将介绍如何通过Python下载和使用…

5. 超炫酷的爬虫源代码-vip音乐下载器

文章目录 1. 准备工作2. 安装第3方库2.1 os 库2.2 tkinter库2.3 webbrowser 库2.4 requests 库2.5 PySimpleGUI 库2.6 retrying库 3. 源代码4. 运行结果5. 音乐下载器的使用6. 去哪里找下载的音乐7. 部分代码解析8. 留言 1. 准备工作 在电脑D盘新建一个【安迪笔记】文件夹。 【…

chatgpt赋能python:Python怎么下载cfg模块

Python怎么下载cfg模块 Python是一种流行的编程语言,它多用于Web开发、数据分析、人工智能等领域。要想使用Python编写程序,需要掌握大量的Python模块。其中,cfg模块是一个比较特殊的模块,它可以用来读取和写入INI文件。本文将介…

chatgpt赋能python:Python科学计算之超级强大的数据分析库:Pandas

Python科学计算之超级强大的数据分析库:Pandas Python作为一种高级编程语言,已经被广泛应用于数据分析、机器学习和人工智能等领域。在这些领域中,Pandas是最重要的Python库之一。它提供了高效、灵活的数据结构和数据分析工具,如…

chatgpt赋能python:PythonNumpy下载指南

Python Numpy下载指南 在Python中进行科学计算和数据处理,numpy是一个非常重要和必不可少的工具包。Numpy是Python中强大的数学和科学计算工具,它提供了高效的数据结构和计算方法,可以快速处理大型数据集和复杂的科学计算任务。本文介绍了如…

HashMap源码

介绍 HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 特点&#xff1…

redis到底是怎么样进行渐进式Rehash的

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。那么redis的底层是如何来存储数据的呢? 一、redis如何在存储大量的key时候,查询速度还能接近O(1)呢&#xf…

JavaSE笔记(六)重制版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hqvdx4nQ-1685927311485)(https://s2.loli.net/2022/10/04/SkAn9RQpqC4tVW5.png)] 集合类与IO 前面我们已经把基础介绍完了,从这节课开始,我们就正式进入到集合类的讲解中。 …

【ChatGPT+Python】Landsat卫星图像黑边去云及旋转校正

引言 下图是一张Landsat图像的示例(右图)。我们可以明显地看到四周的黑边和倾斜的角度。这是由于卫星传感器成像导致的。一般情况下,我们是不需要去除黑边和选择的,因为这样做之后投影信息和位置信息就不正确了。但对于做深度学习…

React 基本介绍

目录 1、React是什么 2、React 三大颠覆性的特点 2.1 组件 2.2 JSX 2.3 Virtual DOM 3、Flux 架构(redux) 3.1 Flux 3.2 redux 4、打包工具(webpack) 4.1 webpack与RequireJS、browserify 4.2 模块规范 4.3 非 JavaSc…

二叉树的数学性质、最大堆的实现

每层个数的通式 第一层: 2 0 第二层: 2 1 第三层: 2 2 第四层: 2 3 每层个数的通式 2 n − 1 个, n 为层数 \begin{aligned} 第一层:2^0 \\ 第二层:2^1 \\ 第三层:2^2 \\ 第四层&…