当前位置: 首页 > wzjs >正文

沈阳计算机培训机构广州seo招聘信息

沈阳计算机培训机构,广州seo招聘信息,东莞企业网站开发,常德论坛尚一网市民留言1. RCC(复位和时钟控制) RCC(Reset and Clock Control)是 STM32 的时钟系统控制模块,负责管理整个芯片的时钟信号。在使用任何外设之前,必须先使能其时钟。 2. 时钟系统框图解析 时钟源(5 种…

1. RCC(复位和时钟控制)

RCC(Reset and Clock Control)是 STM32 的时钟系统控制模块,负责管理整个芯片的时钟信号。在使用任何外设之前,必须先使能其时钟

2. 时钟系统框图解析

时钟源(5 种)
  1. HSI(高速内部时钟)

    • 由内部 RC 振荡器产生,默认 8MHz
    • 精度较低,适用于对时钟精度要求不高的应用
    • 可作为系统时钟源
  2. HSE(高速外部时钟)

    • 由外部晶振(石英/陶瓷谐振器或外部时钟)产生,频率范围 4-16MHz
    • 可直接作为系统时钟,或经分频后作为 PLL 输入
  3. PLL(锁相环)

    • 来源:HSI/2、HSE、HSE/2
    • 作用:倍频(×2 ~ ×16)
    • 通常作为系统时钟的最终来源
  4. LSE(低速外部时钟)

    • 由外部 32.768kHz 石英晶振产生
    • 用于 RTC(实时时钟)
  5. LSI(低速内部时钟)

    • 由内部 RC 振荡器产生,约 40kHz
    • 低功耗,适用于独立看门狗(IWDG)
主要时钟信号
  1. SYSCLK(系统时钟)

    • 来源:HSI、HSE、PLLCLK
    • 通过 AHB 预分频器(1/2/4/8/16/64/128/256/512)得到 HCLK
    • 最高可达 72MHz
  2. AHB 总线时钟(HCLK)

    • 供给 AHB 总线、存储器、DMA 等模块
  3. APB1 低速总线时钟

    • 最高 36MHz,用于低速外设
  4. APB2 高速总线时钟

    • 最高 72MHz,用于高速外设
  5. RTCCLK(实时时钟时钟)

    • 来源:HSE/128、LSE、LSI
  6. USBCLK(USB 时钟)

    • 来源:PLLCLK 经过 USB 预分频器(÷1 或 ÷1.5)
  7. MCO(时钟输出)

    • 通过 PA8 引脚输出,来源可选 SYSCLK、HSI、HSE、PLLCLK/2

3. 时钟安全系统(CSS)

当 HSE 失效时,CSS 可自动切换到 HSI,确保系统继续运行。

4. 时钟控制寄存器(RCC 寄存器)

typedef struct
{__IO uint32_t CR;         // HSI, HSE, CSS, PLL 使能/就绪标志  __IO uint32_t CFGR;       // 时钟源选择、分频系数设定  __IO uint32_t CIR;        // 时钟中断控制  __IO uint32_t APB2RSTR;   // APB2 外设复位  __IO uint32_t APB1RSTR;   // APB1 外设复位  __IO uint32_t AHBENR;     // AHB 外设时钟使能  __IO uint32_t APB2ENR;    // APB2 外设时钟使能  __IO uint32_t APB1ENR;    // APB1 外设时钟使能  __IO uint32_t BDCR;       // 备份域控制  __IO uint32_t CSR;        // 控制状态  
} RCC_TypeDef;

5. RCC 库函数

时钟源使能
RCC_LSEConfig();   
RCC_HSEConfig();   
RCC_HSICmd();      
RCC_LSICmd();      
RCC_PLLCmd();     
时钟源选择
RCC_PLLConfig();   
RCC_SYSCLKConfig();  
RCC_RTCCLKConfig();
分频系数选择
RCC_HCLKConfig();   
RCC_PCLK1Config();  
RCC_PCLK2Config();
外设时钟使能
RCC_APB1PeriphClockCmd();  // APB1 外设  
RCC_APB2PeriphClockCmd();  // APB2 外设  
RCC_AHBPeriphClockCmd();   // AHB 外设  
时钟状态获取
RCC_GetClocksFreq();   
RCC_GetSYSCLKSource();  
RCC_GetFlagStatus();
RCC 中断控制
RCC_ITConfig();  
RCC_GetITStatus();  
RCC_ClearITPendingBit();

6. SystemInit 初始化时钟系统

SystemInit 函数定义在 system_stm32f10x.c,用于复位和初始化时钟。

void SystemInit(void)
{RCC->CR |= (uint32_t)0x00000001; // 使能 HSI  RCC->CFGR &= (uint32_t)0xF8FF0000; // 复位 SW、HPRE、PPRE1、PPRE2  RCC->CR &= (uint32_t)0xFEF6FFFF; // 关闭 HSE、CSS、PLL  RCC->CR &= (uint32_t)0xFFFBFFFF; // 关闭 HSEBYP  RCC->CFGR &= (uint32_t)0xFF80FFFF; // 复位 PLL 相关位  /* 禁用所有 RCC 相关中断 */RCC->CIR = 0x009F0000;/* 设置系统时钟 */SetSysClock();/* 设置向量表偏移地址 */SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
}

7. SysTick(系统滴答定时器)

SysTick 是 ARM Cortex-M 内核自带的 24 位定时器,主要用于操作系统心跳时钟或延时。

SysTick 相关寄存器
  • CTRL(控制和状态)

    • TICKINT:是否启用中断
    • COUNTFLAG:计数标志
  • LOAD(重装载值)

    • 设定倒计数初值
  • VAL(当前计数值)

  • CALIB(校准值)

SysTick 配置
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
{// SysTick 时钟源选择if (SysTick_CLKSource == SysTick_CLKSource_HCLK)SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Msk;elseSysTick->CTRL &= ~SysTick_CTRL_CLKSOURCE_Msk;
}
  • SysTick_CLKSource_HCLK(内部 72MHz 时钟)
  • SysTick_CLKSource_HCLK_Div8(外部 HCLK/8,即 9MHz)
http://www.dtcms.com/wzjs/89429.html

相关文章:

  • 东莞市疫情wordpress seo教程
  • 理财p2p网站开发合肥网站外包
  • 上海虹口网站制作顶尖文案网站
  • 做网站外包网站推广怎么写
  • 女朋友在互联网公司做网站新冠疫情最新消息今天
  • 济宁网站制作乐云seo
  • 深圳百度推广网站建设微信怎么推广找客源
  • 4网站免费建站网站空间费用一年多少
  • 杭州政府网站建设管理steam交易链接在哪
  • 网站建设属于设备吗seo外包资讯
  • 设计网站页面步骤网页搜索关键字
  • 上海做网站报价网页制作代码模板
  • 数据库网站开发教程深圳市企业网站seo营销工具
  • 官网网站建设需求短视频seo关键词
  • tomcat做静态网站今日新闻最新头条
  • 自己做的网站如何加视频最有吸引力的营销模式
  • 杭州做网站seoseo优化工具推荐
  • 马上飞做的一些网站微商引流被加方法精准客源
  • 南充网站建设略奥科技网站seo方案
  • 怎么做二级域名网站能打开任何网站浏览器
  • 做邀请函用哪个网站好呢企业网络营销目标
  • 集团高端网站建设公司深圳网络优化公司
  • 怎么做网站里插入背景音乐武汉seo建站
  • 如何制作微信网站沈阳seo关键字优化
  • 用java做音乐网站网站制作专业
  • 网站前端开发流程seo视频教程百度云
  • 武汉立城建设发展公司网站淘客推广怎么做
  • 诸城网站建设哪家好联合早报 即时消息
  • 制作企业网站要花多少钱大数据精准营销获客
  • wordpress网站导出游戏推广员判几年