今天在调试STM32系统时钟设置时遇到一个问题:TIM2定时1Ms,TIM2中断服务函数time++,time=100时LED状态改变。程序运行后发现LED不是按照0.1S的时间闪烁,闪烁的很慢。

查找程序发现在系统时钟初始化时,RCC_HSEConfig(RCC_HSE_Bypass); 语句配置不对,此语句解释为HSE晶振被外部时钟旁路。指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了。

因为之前用的是有源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_Bypass);

图1

无源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_ON);

附:1 晶体与晶振的区别:

   晶振是一个统称,晶振分为有源晶振和无源晶振。有源晶振又叫钟振,无源晶振又叫晶体。区别两者最简单的就是,是否需要对它单独供电,需要供电电压的,就是有源晶振,反之,无源晶振。还有一个外观上比较容易判断的就是,如果只有两个脚的,那一定是无源的晶振,但是如果是三个脚,四个脚的,可能是无源,也可能是有源,需要从上面提到的判断。
附:2 STM32系统时钟配置函数
void Sys_Clk_Init(void)              //系统时间设置72M,使能DMA1,GPIOA,AFIO,ADC1
{
    ErrorStatus HSEStartUpStatus;
    RCC_DeInit();
    //  RCC_HSEConfig(RCC_HSE_Bypass);
    RCC_HSEConfig(RCC_HSE_ON);                                                              HSEStartUpStatus = RCC_WaitForHSEStartUp();
    if(HSEStartUpStatus == SUCCESS)
    {
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
        FLASH_SetLatency(FLASH_Latency_2);
        RCC_HCLKConfig(RCC_SYSCLK_Div1);
        RCC_PCLK2Config(RCC_HCLK_Div1);
        RCC_PCLK1Config(RCC_HCLK_Div2);
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
        RCC_PLLCmd(ENABLE);
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)  {}
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);           while(RCC_GetSYSCLKSource() != 0x08)                 {}
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
    RCC_APB2PeriphClockCmd(  RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA , ENABLE);
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE);
    }
        else
    {
        while(1);   //
    }
}

STM32系统时钟设置,采用外部有源晶振相关配置问题相关推荐

  1. STM32系统时钟设置(标准库)

    1.STM32F407时钟树 2.系统时钟相关的结构 HSE高速外部时钟信号 锁相环PLL 锁相环的主要作用就是对时钟进行倍频,然后把时钟输出到各个功能部件.PLL有两个,一个主PLL,另一个是专用的 ...

  2. 6410的系统时钟设置(中)---相关寄存器介绍

    上篇中已经详细分析了6410时钟系统的结构,现在就介绍下几个与时钟设置相关的寄存器. 1.APLL_LOCK.MPLL_LOCK.EPLL_LOCK 这三个寄存器的低十六位分别表示APLL.MPLL. ...

  3. STM32系统时钟默认设置

    "我们一直都说STM32有一个非常复杂的时钟系统,然而在原子或者野火的例程中,只要涉及到时钟,我们却只能看到类似的库函数调用,如RCC_APB2PeriphClockCmd(RCC_APB2 ...

  4. STM32系统时钟及配置方法

    什么是时钟 单片机如果要正常运行,时钟信号是必不可少的.作为CPU的脉搏,时钟的快慢决定了CPU的运行速率,执行指令的速度.一般时钟源会被分频器或倍频器分成多种频率的时钟,以满足系统的不同应用. 那么 ...

  5. STM32系统时钟配置及时钟树

    参考资料:< STM32F4xx 中文参考手册> RCC 章节. STM32时钟可大致分为系统时钟和其它时钟两大类,总共包含5个时钟源 HSI(High Speed Internal Cl ...

  6. 6410的系统时钟设置(上)---6410时钟控制逻辑框架分析

    本文主要介绍6410内核和AHB.APB总线的时钟设置. 6410的时钟逻辑结构还是比较清晰的,配置起来并不难(曾让笔者极度抓狂的是Freescale Kinetis系列的片子,系统时钟配置起来很麻烦 ...

  7. STM32系统时钟详解

    STM32时钟树 STM32时钟系统简介 在CPU中时钟系统就像人的心脏一样,给系统一个稳定的类似于人脉搏一样的一个工作时间基准,其重要性是不可言喻的.而STM32F4的时钟系统还是较为复杂的,不像5 ...

  8. 关于STM32 RTC时钟使用内部/外部晶振的切换方法

    对于使用STM32单片开发项目的同志,经常会使用到STM32的RTC功能,而在配置RTC的功能时需要配置晶振的使用,可以使用内部晶振或外部晶振,配置流程参考官方的示例代码即可. 但在之前的项目中遇到一 ...

  9. STM32F103系统时钟设置

    概述 实际使用STM32F103单片机时,第一步就是配置系统的工作时钟.我们时常需要选择使用外部时钟源和内部时钟源,这里我们以F103为例子,提供两个函数参考,供大家实际开发中使用配置系统时钟. 实例 ...

最新文章

  1. [Android]ViewSwitcher使用范例
  2. linux 极简统计分析工具 datamash 必看教程
  3. 数据库中关于convert的参数学习(转化函数用法)
  4. python urllib.request ssl失败_python requests SSL证书问题
  5. 2013dgtcs 数对
  6. 拥有2000家门店,他如何晋升为服装界的新宠? 1
  7. 一款好用的取色工具TakeColor.exe
  8. java access数据库连接_Java Access数据库连接
  9. 企查查python爬虫实例
  10. 三种坐标系经纬度转化小工具
  11. win10桌面显示计算机及网上邻居,Win10网上邻居在哪? Win10桌面显示网上邻居网络图方法...
  12. Cisco ❀ QinQ技术与VXLAN技术的区别
  13. 图片干扰背景处理,简单易懂
  14. 让孩子喜欢科学的31部少儿科普书籍
  15. 逻辑英语——动词和分词-----名词
  16. c语言蚂蚁王国的货币系统,蚂蚁王国的探索之旅
  17. ROS之msg文件定义以及自定义发布主题消息类型
  18. kubectl describe命令详解
  19. 聊天机器人ChatGPT刷爆网络,我们与它聊了聊量子计算
  20. matlab语音加入正弦噪声,基于Matlab的语音信号去噪声处理 毕业论文.doc

热门文章

  1. 剑侠情缘gm后台php怎么用啊,剑侠情缘搭建教程
  2. 黑客发展历史和大事记
  3. 还在用通风放味除甲醛呢?专家教你三个小妙招,帮你轻松除甲醛!
  4. 经典好诗 词。。。。。
  5. 清除指定域名下的cookie
  6. NOA渗透率超5%?智能汽车赛道争夺下一轮市场高点
  7. 编码质量评估-编码视频效果测试场景归纳
  8. 梦幻测试服务器维护要多久,梦幻西游:2.9维护没有测试服,百服平转要开放了...
  9. 工作流(三)_什么是工作流管理系统
  10. 桌面和任务栏突然出现 爱淘宝.lnk Dandelion.exe