STM32中的晶振电路有什么作用

stm32  有两个可接入的外部晶振,自己内部也有低俗的晶振。举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或者提供rtc时钟,不过比较慢。

stm32为什么有内部晶振和外部晶振

stm需要2个晶振,1个是hse,常用外部高频,pll倍频用,常为8mhz;另一个为外部低频晶振,系统待机或低功耗时用,为32.6khz。外接的那个用于rtc的32768晶振,需要专用的6pf负载晶振。内部也有高低频rc振荡器。

2018-04-26 STM32中使用内部RC振荡器做系统时钟

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法:

1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。

2)对于少于100脚的产品,有2种接法:

2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。

2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。

例程如下:

//=== 晶振脚重映射到PD0,PD1 并配置为推挽输出输出‘0’

void HSI_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_DeInit(); /*将外设RCC寄存器重设为缺省值*/

RCC_HSICmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就绪

RCC_HCLKConfig(RCC_SYSCLK_Div1);  /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/

RCC_PCLK2Config(RCC_HCLK_Div1);  /*设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟= HCLK*/

RCC_PCLK1Config(RCC_HCLK_Div2); /*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟= HCLK /2*/

FLASH_SetLatency(FLASH_Latency_2); //FLASH_Latency_2 2延时周期

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//预取指缓存使能

RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_16);/*设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz*/

RCC_PLLCmd(ENABLE);      /*使能PLL */

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; /*检查指定的RCC标志位(PLL准备好标志)设置与否*/

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  /*设置系统时钟(SYSCLK)*/

while(RCC_GetSYSCLKSource() != 0x08);    /*0x08:PLL作为系统时钟*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |RCC_APB2Periph_AFIO,ENABLE);//打开重映射时钟,并打开重映射后的IO口

GPIO_PinRemapConfig(GPIO_Remap_PD01,ENABLE); //IO口重映射开启

/*选择要控制的引脚*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;

/*设置引脚为通用推挽输出*/

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

/*设置引脚速率为50MHz*/

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

/*调用库函数,初始化GPIOC*/

GPIO_Init(GPIOD, GPIO_InitStructure);

/*固定IO口下拉到地*/

GPIO_ResetBits(GPIOD, GPIO_Pin_0 | GPIO_Pin_1);

}

HSI内部8MHz的RC振荡器的误差在1%左右,内部RC振荡器的精度通常比用HSE(外部晶振)要差上十倍以上。STM32的ISP就是用(HSI)内部RC振荡器。

stm32的工作频率和晶振有什么关系?8M的晶振,工作频率是多少?还有自带的ADC转换是不 ...

STM32F103系列芯片,最高工作频率可以到72M,使用8M的外部晶振,一般还需要使用内部的PLL锁相环进行倍频,相比于内部的8M的RC震荡。

STM32工作频率是由晶振倍频来的,以STM32F103VBT6为例,晶振是8M,设置PLL倍频为9的话,工作频率为72M,一般ADC电压不超过VCC;

如果超过ADC,一方面数据可能出错,另一方面电压超过IO口承受范围造成单片损坏,ADC一般都通过电阻分压后进行转换,很少有人把直接信号直接引入ADC转换,特别是功率信号。

扩展资料:

STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。

在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。

如何判定STM32使用的是外部晶振还是内部晶振

要是有仿真器可以在时钟分频的地方加一个断点,初始化仿真看下程序跑到那里的时候是什么频率就能知道是外部晶振还是内部晶振了。也可直接看电路板上没有外部晶振就是用的内部的。

stm32启用内部晶振(stm32设置外部晶振)相关推荐

  1. 虚拟服务器的外部跟内部端口,虚拟服务器设置 外部端口

    虚拟服务器设置 外部端口 内容精选 换一换 您可以使用镜像快速创建一个可公网访问的单实例工作负载.本章节将指导您基于云容器引擎CCE快速部署Nginx容器应用,并管理该容器应用的全生命周期,以期让您具 ...

  2. stm32不使用外部晶振管脚怎么处理_stm32103如果不用32k晶振,那引脚是悬空还是接地?...

    如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空. 2)对于少于100脚的产品,有2种接法: 2.1)OSC_I ...

  3. STM32系列修改外部晶振以及代码的修改(f103、f105为例)

    此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振.比如你想更换到为外部晶振为12M,但是主频仍想用72M的.该如何设置?或者想倍频到更高的主频该怎么修改? 例子就直接直接拿& ...

  4. STM32F10x 更改外部晶振后,修改时钟频率的方法

    转载自:https://blog.csdn.net/qq_26039331/article/details/78751047 此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振 ...

  5. STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)

    目录 1.参考链接: 2.虚拟串口硬件说明 2.1.程序中无需配置硬件的设计:D+直接接了3.3V的上拉电阻. 2.2.需要程序中配置D+上拉电阻使能的设计:可以软件模拟USB插拔,便于固件更新后自动 ...

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

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

  7. stm32不使用外部晶振管脚怎么处理_外部晶体振荡器被旁路的原理和原因

    单片机的外部晶振稳定,受温度,湿度等环境因素影响比内部振荡器小,精度比较高.而且当设计需要降低功耗时,比如说便携式仪表等,就需要外设晶振,因为内部振荡器不能根据需要停止,而外部晶振可以适时停止,从而进 ...

  8. STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

    STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空. 2)对于少于100脚的产品,有2种接法:   ...

  9. STM32 F103 外部晶振8M改为12M

    stm32 实现外部晶振变换有2种方法: 第一种修改系统库函数: 第一步,打开stm32f10x.h,将  #define HSE_VALUE    ((uint32_t)8000000)  修改为: ...

最新文章

  1. python中copy怎么用_python中的拷贝copy模块怎么使用?
  2. python【力扣LeetCode算法题库】836- 矩形重叠
  3. Matplotlib实例教程(六)直方图
  4. linux ftp服务器构建
  5. [LeetCode] Count Primes - 素数系列问题
  6. oracle t44,SecureFiles LOBs基础知识之存储篇
  7. TensorFlow第五步:返回起点、深挖坑,解刨一个麻雀。
  8. thinkphp的分页类
  9. SQL 查询笔记:子查询,分组查询,左连接查询。。。。。
  10. MySQL数据库搜题_智慧树知到_MySQL数据库设计与应用_搜题公众号
  11. 如何使用EasyRecovery进行深度扫描和继续扫描
  12. 排序算法1:最快最简单的排序——桶排序(C++版本)
  13. Oracle数据泵对已经存在的表加载索引
  14. IT营Koa2教程_Koa2+Nodejs+MongoDb打造企业级CMS前后端全栈项目实战视频教程(大地)
  15. 医疗行业软件开发流程-立项阶段
  16. 《Cocos Creator游戏实战》打砖块主要功能与逻辑实现
  17. RT_Thread操作系统配置环境EVN学习笔记
  18. php yi ju hua,IT培训 后端开发 PHP等 PHP培训-
  19. python3 接入IOS推送apn
  20. 深入讨论Python中的序列切片语法

热门文章

  1. 线性回归中的L1与L2正则化
  2. 2019上海埃森哲软件开发面试
  3. C++中类成员和类继承的private、protected和public关键字作用
  4. 合约机乱象频出,运营商利益如何才能得到保障?
  5. win11 安装Subversion与配置 svn服务端
  6. [转]家庭上网安装与设置教程
  7. 对象及日期定时器、延时器
  8. 2020-12-02 微信JSAPIV3支付
  9. luoguP3397 地毯
  10. Java mail 535鉴权失败或启动报错