首先,我用的是STM32F407,下方所有图片都是出自这芯片的文档,如果型号和我不同,需要找到对应的芯片说明文档,也许会有出入 先看一张时钟图 这里会着重说明高速的部分,低速(不管内部还是外部)只给RTC时钟使用 题外话,MCO1.MCO2,你可以往外面输出时钟 以下开始正题 图片红圈处是主时钟,供给许多东西使用,例如外设(UART.SPI...),简直就像大型音乐演奏的指挥者 所有你想用到的外设,初始化第一步,就是使能时钟(向主时钟请求) 例如下方的SPI初始化代码 void SPI3_Ini…
1. STM32f103有内部晶振.刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的.2. STM32f103有内部复位电路,只有当检测到外部电压大于电压阀值时才会启动.因为需要检测外部电压,所以模拟Ref/VDDA/VSSA不能开路,做实验是可以将Ref/VDDA与3.3V链接,VSSA与GND链接.3. 串口连接时,要记得正确配置好Boot0和Boot1引脚的电平.4. Jlink链接时,要注意是JTAG模式还是SWD模式.(一…
首先问题描述: 1.自己画的板子和淘宝买的最小系统板 系统时钟不一致,自己画的是8Mhz,HSE失败:最小系统板72Mhz 2.最小系统板在程序1运行仿真的时候,查看peripherals->Power,Reset and Clock Control(PRCC)是72MHZ,在程序2仿真的时候是8Mhz,程序SystemInit()所在的文件一模一样: 3.出现过8M晶振坏了,更换晶振后时钟源正常72Mhz 问题1原因: 1.注意晶振的匹配电容的值,测试版发现系统时钟有问题时,可以是晶振不起振,…
PPM是石英晶振的基本单位之一,表示晶振的精度和相对偏差, PPM代表着百万分之一,它表明晶体的频率可能会偏离标称值多少.晶振频率是以MHZ(10的6次方)和KHZ(10的3次方)为基本单位的,标称频率10MHZ晶振的频率偏差10HZ就刚好是1PPM. 厂家会把每款晶振按照精度的不同分品质等级,一般分10PPM.20PPM.50PPM和100ppm. 举例MC-306 32.768khz精度为20 ppm.误差:32.768*20/1000=0.65536.意味着真实频率在32.7673千赫(3…
晶振是石英晶体谐振器(quartzcrystal oscillator)的简称,它被称为电路系统的心脏,它为整个系统提供"心跳".中央处理器(CPU)一切指令的执行都是建立在这个"心跳"上的,这个心跳就是CPU执行指令所必须的时钟频率信号,一般来说时钟信号频率越高,CPU的运行速度也就越快.只要是包含CPU的电子产品,都至少包含一个时钟源,有些在外面看不到晶振或者振荡电路,是因为在芯片内部被集成了. 1.晶振分类 1.1.无源晶振 无源晶振(晶体谐振器)工作原理:在…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT10xx系列MCU外接24MHz晶振的作用. 痞子衡之前写过一篇关于时钟引脚的文章 <i.MXRT1xxx系列MCU时钟相关功能引脚的作用>,里面简单提及了外部晶振相关引脚的作用,但是并没有详细展开.最近在客户支持中,有客户咨询项目板级设计上能否将外部 24MHz 晶振完全去掉,就使用芯片内部集成的 RC24M 做初始时钟源.今天痞子衡就详细展开这个话题: Note: 本文中图片代码均以 i.MXRT1050 为例,但…
实时时钟晶振为什么选择是32768Hz的晶振,在百度上搜索的话大部分的答案都是说2的15次方是32768,使用这个频率的晶振,人们可以很容易的通过分频电路得到1Hz的计时脉冲.但是话有说回来了,2的整数次方很多为什么偏偏选择15呢? 以下是关于时钟晶振频率选择所需要考虑的几点: 1.频度越高计时精度越高,误差越小. 2.由于各种原因,每个晶振的实际频率与其标称频率之间也存在偏差. 3.晶振的工作环境对晶振的频率也有影响,用晶振的频率稳定度来表示不同晶振受环境影响的大小,其单位是ppm(百万分之一…
写得不错,小白的我学习了 原文地址:关于晶振ppm作者:thomaswangbj XXppm就是说频率的误差=(xx/百万)*振荡器的标称频率 eg1:120ppm,27M的晶振,频率的误差 = 120/100万*27M=3240Hz 晶振的精度决定时钟的计时准确度. eg2: 所配晶振频率:32772.2HZ,误差为+1.2ppm 一年的误差计算过程为: Δf    =  +1.2/100万*32772.2 Δt/秒 = Δf/32772.2 = 1.2/100万 一年的误差 = Δt*24*…
由于STM32F10x库官方采用的是默认的外接8MHz晶振,因此造成很多用户也采用了8MHz的晶振,但是,8MHz的晶振不是必须的,其他频点的晶振也是可行的,只需要在库中做相应的修改就行.    在论坛上看到很多用户反映,使用外接12MHz的晶振,会造成很多的问题,如USART的波特率不正确,Systick走时不准等问题,在无论是在实际调试还是在软件模拟中都会发现这个情况,其实,这不能怪ST官方,我们必须肯定ST官方为方便用户开发所做的努力,下面我们就通过简单的三个步骤就可以让你随意的使用4—1…
今天(2014.4.21)把stm32f107的程序下载到stm32f103的板子上,发现串口收不到数据,突然想起晶振频率没有修改,#define HSE_VALUE    ((uint32_t)13560000) /*!< Value of the External oscillator in Hz */ 这个要改回去,因为外接晶振是8M 之后试验,发现有数据,但是乱码.百思不得其解,无意中发现,PC的波特率设置为9600,板子的波特率设置为19200就不会乱码.刚好是2倍的关系.顺藤摸瓜问度…