×
单片机 > 单片机程序设计 > 详情

STM32学习笔记之基础介绍(一)(时钟源,系统时钟)

发布时间:2020-06-01 发布时间:
|

        这是我第一次在CSDN上写博客,准备把自己学习STM32的内容记录下来。


        因为最近在复习,所以就当作是巩固学习吧。


        首先我用的具体型号是STM32F407ZGT6,属于M4系列的,使用Keil平台开发,ST-LINK下载。


        第一篇的话,就先简单介绍一下开发环境,以及一些相应的问题。 


1、我学习的是寄存器版本,相对于库函数版本来说,学习起来比较困难;不过学习寄存器版本优点是能更深入的了解单片机的运行原理,而且寄存器版本学会了,库函数也就能会了。


        STM32 有两种操作方式:

        方式1:库函数操作

            ----ST为了用户编写方便,把MCU中的外设功能全部封装成函数,用户直接调用即可

        方式2:寄存器操作


            ----用户根据外设功能,自己结合MCU底层编写函数;  


        对于精通者做项目开发时用哪种都可以;对于初学者(学习一款,掌握MCU结构,可以类通其他MCU),最好学习寄存器(上手慢,利于后面学习其他类型的MCU)


2、四种时钟源:


        HSI:高速内部时钟,由芯片内部集成的RC震荡电路产生,即使校准,也是不精确


        HSE:高速外部时钟,由外接晶振产生,启动后经过倍频电路作为CPU工作的主频时钟


        LSE:低俗外部时钟,由外接晶振产生,主要作为RTC的工作时钟


        LSI:低速内部时钟,由芯片内部集成的RC震荡电路产生,主要作为看门狗时钟


        很多人说是有五种时钟源,另外一种就是PLL:锁相环倍频输出。


        说PLL也是一种时钟源我觉得可能不太准确,讲到这,就不得不提系统时钟了,因为一般来说系统时钟就是由PLL提供的,接下来会简单讲一下系统时钟与PLL的关系


3、系统时钟SYSCLK


        系统内核和外设时钟的时钟只有一个源,那就是SYSCLK, 即常说的系统时钟, 他是有一个选择器SW来做选择的,有3种选择HSI、HSE和PLL。而我用的这款单片机就是采用PLL作为时钟输入源的。


        由于PLL锁相环倍频输出较复杂,所以我就不详细说,只是简单介绍下,如果有碰巧看到这篇文章,并且正好对这个有兴趣的,可以看下这篇博客,讲的较为详细:STM32时钟配置


        简单来说,系统时钟都是选择高速时钟,而高速内部时钟不准确,所以不考虑,而高速内部时钟即使是高速了,依旧不够。举例说我用的这款单片机,HSE为4~26MHz可调,然而主频(也就是系统时钟频率)却是168MHz,这时候HSE就远远不够了。这时候就轮到PLL出场了,PLL作用很简单,就是倍频。但是原理不是很简单,我初学的时候就很疑惑,分频我还能理解,但是倍频是怎么做到的呢?知道查阅了相关的资料后才知道,有兴趣的可以搜一下PLL工作原理,这里不再详细说。


        从system_stm32f4xx.c文件中可以找到公式:PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N ,PLL_VCO即PLL输出,而我用的芯片定义的参数为HSE_VALUE=25MHz,PLL_M=25,PLL_N=336,所以得到PLL_VCO=336MHz,即由HSE提供25MHz给PLL,然后PLL对其进行分频后再倍频到336MHz,但这时还没有结束,因为还有一句:SYSCLK = PLL_VCO / PLL_P,而PLL_P=2,所以这就得到了系统时钟168MHz。同样在芯片手册时钟框图中,可以看到这些步骤,只不过没有标出参数,因每款芯片都不同,需要到响应的头文件中去找。


4、五条时钟线


        时钟线是由系统时钟分出的提供给各模块使用的,需要与时钟源区分开来


        ---在主频168M的情况下,分出不同的时钟线(每条线有不同的频率,不同的外设挂载在不同的时钟线下)


        ---在mcu的芯片手册第2.2章节查找


5、容量 


        flash : 1M  字节 


        ---代码存储区:存放代码、用const修饰的变量


        sram  :  128k 字节


        ---数据存储区


        int a;存储在sram中


        const int a;存储在flash中




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法