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使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程相关推荐

  1. 【STM32使用内部RC振荡器】1、时钟源的设置

    PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2. HSE 或者 HSE/2. 而HSI固定为8M,故PLL输入固定为4M. HSE通常是外部晶振8M 以下HSI代码设置的各个时钟频率为: ...

  2. STM32F103单片机使用内部RC振荡器做时钟源

    平时在做项目的时候都用的是外部晶振做为时钟源,想试试用内部RC振荡器做为时钟源,在网上搜了一下如何设置内部时钟,发现资料比较少的.决定将设置内部RC振荡器做为时钟源的方法记录下来. 用的单片机是STM ...

  3. STM32F103学习笔记(一)使用内部rc振荡器做时钟源

    写在前面:标题"使用内部rc振荡器做时钟源"其实不太准确,实际应该是"使用内部rc振荡器经PLL倍频后做时钟源",为了简单本文统一用"使用内部rc振荡 ...

  4. FAQ0131 AT32操作擦除 SPIM 必须注意事项说明FAQ0135-AT32MCU 时钟配置错误或晶振大小选择错误导致异常

    AT32MCU 时钟配置错误或晶振大小选择错误导致异常 Questions:在时钟配置错误或晶振大小选择错误的情况下,下载代码到开发板导致无法继续进行debug或再次下载的一系列异常情况.如场景一:自 ...

  5. stm32产生100k时钟信号_stm32f105/107系统时钟变慢

    问题:最近把之前stm32f103平台的工程拿到stm32f105平台编译,编译通过了,但是烧录运行时发现系统时钟慢了3倍左右. 我先上一张stm32的时钟树吧 1.通过打印SYSCLK=72MHz, ...

  6. stm32启用内部晶振(stm32设置外部晶振)

    STM32中的晶振电路有什么作用 stm32  有两个可接入的外部晶振,自己内部也有低俗的晶振.举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或 ...

  7. PIC单片机RC振荡器的使用及校准方法

    在PIC的单片机--MSP430F1611IPM中有多种型号有内部RC振荡器的功能,从而省去了晶振,不但节省了成本,并且我们还多了两个IO端口可以使用. 但是,由于RC振荡器中电阻.电容的离散性很大, ...

  8. STM32使用内部时钟HSI作为系统时钟及配置Systick定时器

    参考:https://blog.csdn.net/huangyangquan/article/details/78790443 https://www.cnblogs.com/dustinzhu/p/ ...

  9. 如何设置STM32的系统时钟(SYSCLK)

    目录 1.STM32F407 的时钟来源 1.1.HSI 时钟 1.2.HSE 时钟 1.3.主 PLL 时钟 2.时钟树 3.配置系统时钟 3.1.系统时钟有关寄存器 3.2.使用系统的默认配置 3 ...

最新文章

  1. Cobalt Strike 的安装与简单使用
  2. mybatis一级缓存导致sql查询出现问题
  3. 软考高项之范围管理-攻坚记忆
  4. How is SAP CDS metadata retrieved from AG3 backend
  5. Undefined symbols for architecture i386问题解决方法
  6. 第2课:关闭被黑客扫描的端口
  7. 线程停止继续_线程不是你想中断就能中断
  8. NodeJS + Sequelize + Mysql + Vue + Bootstrap
  9. 私有成员变量理解的补充
  10. 取得人生成功的40条定律
  11. 简单记录 Part1.1
  12. 【python与数据分析】Python与数据分析概述
  13. html 一键转发微信朋友圈,微信公众号H5,分享朋友,分享朋友圈处理
  14. 牛血清白蛋白包裹氧化锌纳米粒
  15. MathType求和符号中的黑三角该如何消除
  16. 阿里巴巴助攻腾讯破6.2亿微商传销第一大案!涉案公众号粉丝2400
  17. 小米路由器3G(R3G)刷潘多拉
  18. 2018年度10大新兴技术:人工智能、量子计算、增强现实等
  19. python使用gdal读取tif经纬度
  20. 希尔伯特变换(Hilbert Transform)

热门文章

  1. 电脑用久了又卡又慢教你一招让你电脑调整为最佳性能!
  2. 如何查看搜狗输入法的版本
  3. [jenkins] 启动错误 Failed to start LSB: Jenkins Automation Server.
  4. android应用加固后闪退,360加固保加固后打开app即闪退
  5. tiny4412搭建linux开发环境,[Tiny4412] 移植 Linux4.4 到 Tiny4412 开发板上
  6. 这三大科研工具,你都知道吗
  7. 如何在Redis中查找大key
  8. 渠道分析如何助力精细化运营?
  9. 记录小米路由器硬盘版第2代R2D(最高性价比轻NAS,没有之一)开启SSH屡次失败原因
  10. 基于STM32的智能宠物看护喂养系统(程序源码+原理图+PCB+Boom表+实物操作说明)