关键词不能为空

当前您在: 主页 > 英语 >

STM32 系统滴答定时器(Systick) 彻底研究、完美解读并且免费,鄙视5个下载券的二货

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 05:47
tags:

-

2021年2月9日发(作者:patience是什么意思)


STM32


系统滴答定时器


(Systick)


彻底研究解读





stm32



系统滴答定时器


(Systick)


彻底研究解读



SysTick


起那些



TIM

定时器可以说简单多啦


~~~~~


哥的心情也好了不少,嘎 嘎!




arm


Cortex-M3


内核的处理器内部包含了一个



SysTick


定时器,它是一个


24


位的倒计数定时器,注意,是倒计数!当计到



0


时它就会从



LOAD


寄存器中自动重装载定时初值。只要不把



CTRL


寄存器中的



ENABLE


为清



0


,它就永不停息!遗憾的是,


Sy sTick


定时器在《


STM32


参考手册》里一个屁都没放,只有在《


ARM Cortex-M3


技术参考手册》和《


ARM Cortex-M3


权威


指南》才找到相关寄存器的介绍。



一、


SysTick


的时钟来源



我先来看看



STM32


的时钟树




The RCC feeds the Cortex Sy stemTimer (SysTick) external clock with the AHB


clock(HCLK) divided by SysTick can work either with this clock or with the


Cortex clock(HCLK), configurable in the Sy sTick Control and Status Register


.


上面这段话的意思是,


SysTick


的时钟来源可以是


HCLK

< p>


8


分频或就是


HCLK




具体是哪种可通过配置

< p>


控制和状态寄存器(


CTRL

< br>)



来选择。



二、


SysTick


的寄存器简介


SysTick


的寄存器一共有


4


个。





另外还有一个校准值寄存器


CALIB


,暂时用不到,先不刁它!



三、


Sy sTick


的库函数



1


、寄存器定义在哪里?答:在


core_cm3.h


中!



ty pedef struct


{


__IO uint32_t CTRL;


__IO uint32_t LOAD;


__IO uint32_t V AL;


__I



uint32_t CALIB;


} SysTick_Ty pe;




#define SysTick



((SysTick_Ty pe *) SysTick_BASE)


2


、函数在哪里?


< br>在


V3.3


的函数库中关于


Sy sTick


的函数只有两个。一个是在


misc.C

< p>
文件中的


SysTick_CLKSourceConfig


函数,它是一个时钟源


配置函数;另一个是在


cor e_cm3.h


文件中的


SysTick_Config


函数,它的输入参数只有一个,传给了重装值寄存器


LOAD


,另外


还将


VAL


寄存 器清


0


了,此外还将


CTRL


寄存器中的


[2:0]


三位都设为了

< p>
1


,分别是使用


HCLK


时钟,允许异常请求,开启计数


器。





misc.C


文件最后有下面一个函数



/**


*@


功能:



配置



SysTick


时钟源



*@


输入参数:


SysTick_CLKSource:


指定



SysTick


时钟源


.


*


该参数可以是以下其中一个值


:


* @ SysTick_CLKSource_HCLK_Div8: AHB


时钟



8


分频作为



Sy sTick


时钟源



* @ SysTick_CLKSource_HCLK: AHB


时钟作为



SysTick


时钟源


.


*/


void SysTick_CLKSourceConfig(uint32_t Sy sTick_CLKSource)


{


/*


参数检查


*/


assert_param(IS_SYSTICK_CLK_SOURCE(Sy sTi ck_CLKSource));


if(SysTick_CLKSource == SysTick_CLKSource_HCLK)


{


SysTick->CTRL |= SysTi ck_CLKSource_HCLK;


}

-


-


-


-


-


-


-


-



本文更新与2021-02-09 05:47,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/619237.html

STM32 系统滴答定时器(Systick) 彻底研究、完美解读并且免费,鄙视5个下载券的二货的相关文章

STM32 系统滴答定时器(Systick) 彻底研究、完美解读并且免费,鄙视5个下载券的二货随机文章