0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CKS32F107xx系列时钟系统具体配置方法讲解

中科芯MCU 来源:中科芯MCU 2024-05-28 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CKS32F107xx系列时钟系统(二)

上一章节对CKS32F107xx系列时钟做了整体介绍,本章节以使用HSI内部高速时钟为例对时钟具体配置方法进行讲解。

620e8914-1c94-11ef-b74b-92fbcf53809c.png

图1 SYSCLK生成流程

622d4b38-1c94-11ef-b74b-92fbcf53809c.png

图2 APB频率生成流程

根据图1,产生SYSCLK时,内部HSI时钟经过二分频,输入PLLSCR模块,再通过PLLM倍频系数产生PLLCLK,即SYSCLK。

由图2可知,SYSCLK通过AHB预分频产生APB即HCLK等时钟系统。

配置寄存器

CKS32F107xx系列时钟配置寄存器

在使用HSI对系统时钟进行配置时,有两个较为重要的RCC寄存器,分别为RCC_CR、RCC_CFGR:

6282725c-1c94-11ef-b74b-92fbcf53809c.png

图3 RCC_CR寄存器

在RCC_CR寄存器中,我们需要关注如下几位:

62ac3060-1c94-11ef-b74b-92fbcf53809c.png

图4 HSI启动及状态寄存器

62cb092c-1c94-11ef-b74b-92fbcf53809c.png

图5 PLL启动及状态寄存器

62f33f3c-1c94-11ef-b74b-92fbcf53809c.png

图6 RCC_CFGR寄存器

在RCC_CFGR寄存器中,我们需要关注如下几位:

63114400-1c94-11ef-b74b-92fbcf53809c.png

图7PLL倍频系数位

632e22fa-1c94-11ef-b74b-92fbcf53809c.png

图8PLL时钟源位

635e1316-1c94-11ef-b74b-92fbcf53809c.png

图9 APB2预分频位

63abe2b2-1c94-11ef-b74b-92fbcf53809c.png

图10 其他RCC_CFGR控制位

在对系统时钟进行初始化过程中,一般也会对闪存访问时间进行配置,如下为CKS32F107xx系列闪存访问时间与系统时钟的对应关系:

63dc5852-1c94-11ef-b74b-92fbcf53809c.png

图11 闪存访问时间

CKS32F107xx系列时钟配置代码

依据上一章节中对寄存器的基本介绍,即可在函数SetSysClock()中对程序时钟进行相关配置,本文以HSI为时钟源,进行36MHz SYSCLK/HCLK/APB1/APB2配置。

/* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/

/* Enable HSI */

RCC->CR |= ((uint32_t)RCC_CR_HSION);

/* Wait till HSI is ready and if Time out is reached exit */

while((RCC->CR & RCC_CR_HSIRDY) == 0){}

/* Enable Prefetch Buffer */

FLASH->ACR |= FLASH_ACR_PRFTBE;

/* Flash 1 wait state */

FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);

FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1;

/*AHB Prescaler set*/

RCC->CFGR |= (uint32_t)RCC_SYSCLK_Div1;

/* HCLK = SYSCLK */

RCC->CFGR |=(uint32_t)RCC_CFGR_HPRE_DIV1;

/* PCLK2 = HCLK */

RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;

/* PCLK1 = HCLK */

RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;

/* PLL configuration: PLLCLK = HSI / 2 * 9 = 36 MHz */

RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLMULL9);

/* Enable PLL */

RCC->CR |= RCC_CR_PLLON;

/* Wait till PLL is ready */

while((RCC->CR & RCC_CR_PLLRDY) == 0){}

/* Select PLL as system clock source */

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));

RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;

/* Wait till PLL is used as system clock source */

while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08){}



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129051
  • pll
    pll
    +关注

    关注

    6

    文章

    976

    浏览量

    137580
  • RCC
    RCC
    +关注

    关注

    0

    文章

    95

    浏览量

    28295
  • 时钟系统
    +关注

    关注

    1

    文章

    124

    浏览量

    12779

原文标题:MCU微课堂|CKS32F107xx系列时钟系统(二)

文章出处:【微信号:中科芯MCU,微信公众号:中科芯MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),它们在
    的头像 发表于 11-28 14:51 3406次阅读
    中科芯<b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b>MCU的独立看门狗介绍

    中科芯CKS32F107XX系列MCU的窗口看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG的详情,请参看我们的IWDG微课堂内容。
    的头像 发表于 11-28 14:48 3579次阅读
    中科芯<b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b>MCU的窗口看门狗介绍

    MCU微课堂|CKS32F4xx系列产品时钟配置

    ,并且高时钟频率将导致功耗增加、抗电磁干扰能力变弱,因此,CKS32F4xx系列产品内部具备多个时钟源。本文将对CKS32F4xx
    发表于 12-12 10:17 1211次阅读

    基于CKS32F4xx系列的MCU互补PWM方案

    互补输出实际跟比较输出章节一样使用的是定时器的功能,所以相关的函数设置同样在库函数文件CKS32f4xx_tim.h和CKS32f4xx_tim.c文件中。 1)开启TIM1和GPIO时钟
    发表于 12-02 10:13 1411次阅读
    基于<b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>的MCU互补PWM方案

    利用CKS32F107xx系列RTC的闹钟实验

    本小节讲解的是如何在万年历实验的基础上,利用RTC的闹钟功能实现一个闹钟,在每天的[XX小时-XX分钟-XX秒]产生闹钟,然后通过闪烁LED模拟闹钟响效果。
    的头像 发表于 02-18 17:21 1124次阅读

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的头像 发表于 11-06 16:56 1497次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    CKS32F4xx系列产品Timer的基本使用方法-比较输出

    CKS32F4xx系列产品Timer的基本使用方法-比较输出
    的头像 发表于 11-09 17:39 1461次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品Timer的基本使用<b class='flag-5'>方法</b>-比较输出

    CKS32F4xx系列产品Timer的基本使用方法-定时操作

    CKS32F4xx系列产品Timer的基本使用方法-定时操作
    的头像 发表于 11-09 17:41 1087次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品Timer的基本使用<b class='flag-5'>方法</b>-定时操作

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置
    的头像 发表于 10-24 15:14 1394次阅读
    MCU微课堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品GPIO口<b class='flag-5'>配置</b>

    CKS32F4xx系列FSMC功能简介

    本课讲为大家讲解CKS32F4xx系列产品的FSMC应用实例,FSMC全称是Flexible Static Memory Controller,读作灵活的静态存储控制器,顾名思义,MCU可以通过FSMC扩展静态内存
    的头像 发表于 04-14 15:06 2068次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC功能简介

    CKS32F107xx系列时钟组成介绍

    作为MCU运行的基础,时钟是MCU各个模块工作时序的最小时间单位,推动MCU的各指令执行,是MCU选型的一个重要指标。
    的头像 发表于 05-20 14:04 1010次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b><b class='flag-5'>时钟</b>组成介绍

    CKS32F107xx系列MCU中ADC介绍

    CKS32F107xx系列产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
    的头像 发表于 06-22 11:04 1571次阅读

    CKS32F107xx系列MCU的GPIO内部硬件结构和工作模式

    16个引脚,如型号为CKS2F107VET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5组GPIO,芯片一共100个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。
    的头像 发表于 07-22 09:23 1655次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>MCU的GPIO内部硬件结构和工作模式

    详解CKS32F107xx系列的定时器同步功能

    CKS32F107xx系列部分定时器在内部是相连的,可用于定时器同步或链接,方便用户配置不同的同步模式,以便在电机控制、数据采集和PWM信号生成等应用中,实现复杂的时间序列和多通道的同步操作。本节课
    的头像 发表于 11-26 17:51 1473次阅读
    详解<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>的定时器同步功能

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同时,亦支持LIN(局域互联网)模式。
    的头像 发表于 02-18 17:18 872次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式