STM32(4)——系统时钟和SysTick】的更多相关文章

原文:http://blog.sina.com.cn/s/blog_49cb42490100s60d.html 1.     STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL (1)       HSI是高速内部时钟,RC振荡器,频率为8MHz: (2)       HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz: (3)       LSI是低速内部时钟,RC振荡器,频率为40KHz: (4)…
1.STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL HSI是高速内部时钟,RC振荡器,频率为8MHz: HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz: LSI是低速内部时钟,RC振荡器,频率为40KHz: LSE是低速外部时钟,接频率为32.768KHz的石英晶体: PLL为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2.HSE或者HSE/2.倍频可选择为2…
转载:http://www.openedv.com/posts/list/302.htm 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32.    下面是从网上找的一个STM32时钟框图,比<STM32中文参考手册>里面的是中途看起来清晰一些: 重要的时钟:  PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚; 1.HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率)     精度较差  …
一.首先了解几个硬件名词: stm32有多种时钟源,为HSE.HSI.LSE.LSI.PLL,对于L系统的,还有一个专门的MSI 1.HSE是高速外部时钟,一般8M的晶振,精度比较高,比较稳定. 2.HSI是高速内部时钟,RC振荡器,频率为8MHz.精度略差. 3.LSE是低速外部时钟,接频率为32.768kHz的石英晶体.一般为RTC使用. 4.LSI是低速内部时钟,RC振荡器,频率为40kHz. 5.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HSE或者HSE/2.倍频可选择为2…
调用库函数RCC_GetClocksFreq,该函数可以返回片上的各种时钟的频率 函数原形  void  RCC_GetClocksFreq(RCC_ClocksTypeDef*  RCC_Clocks) RCC_ClocksTypeDef定义于文件“stm32f10x_rcc.h”: typedef struct{  uint32_t SYSCLK_Frequency; /*!<  SYSCLK clock frequency expressed in Hz */  uint32_t HCLK…
调用库函数RCC_GetClocksFreq,该函数可以返回片上的各种时钟的频率 函数原形 void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks) RCC_ClocksTypeDef定义于文件“stm32f10x_rcc.h”: typedef struct { uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency expressed in Hz */ uint32_t HCLK_Freq…
1.回顾我们的51 单片机编程,当我们需要做系统延迟的时候,最常采用的一种方式就是使用for 循环的空语句等待来实现. 当然,在STM32 里面也可以这么实现.但是在STM32 的Cortex 内核里面,有个比其更加精准的定时器专业用于 系统定时,我们称之为Cortex 系统定时器(SysTick,系统滴答). Systick 就是一个定时器而已,只是它放在了NVIC(中断事件)中, 主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断). 这样,只要设置好其中断的时间,就可以每隔一定时…
系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难度并不高,但是理解起来还是比较复杂的,我会在本文中从实际应用出发去说明,当然最好去仔细研读宋岩翻译的<Cortex-M3权威指南>第八章,注意这不是一本教你如何编写STM32代码的工具书,而是阐述Cortex-M3内核原理的参考书,十分值得阅读. SysTick系统时钟的核心有两个,外设初始化和S…
Systick的两大作用: 1.可以产生精确延时: 2.可以提供给操作系统一个单独的心跳(时钟)节拍: 通常实现Delay(N)函数的方法为: for(i=0;i<x;i++) ; 对于STM32系统微处理器来说,执行一条指令只有几十ns(纳秒),进入for循环,要实现N毫秒的x值非常大:而由于系统频率的宽广,很难计算出延时N毫秒的精确值:针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N): cortex的内核中包含一个SysTick时钟,SysTi…
本篇文章带着大家来认识一下 STM32 的时钟系统,以及利用 systick 定时器来实现一个比较准确的延时. 我们首先从时钟说起,时钟在MCU中的作用,就好比于人类的心脏一样不可或缺.STM32 的时钟相比 51 的单一时钟要复杂些,它有多个时钟源可以使用,那么大家可能会有所疑惑,STM32 的时钟搞的那么复杂干什么,原因其实在于,STM32的外设资源比起51来说,是很丰富的,那么不同外设使用的时钟也会不一样,同时我们要知道时钟越快,功耗就越大,抗电磁干扰的能力就会减弱,因此,比较复杂的MCU…