首页 > 编程知识 正文

pursun计时器说明书,定时器分为哪几种

时间:2023-05-04 07:20:55 阅读:41250 作者:3198

时钟系统等(部分) )注:每个stm32外围设备都需要支持的时钟() ) ) ) ) ) ) )。

5个时钟:LSI低速内部时钟:32khz由RC振荡器产生,频率对于独立的看门狗相对不稳定,并且自动唤醒单元用作时钟(时钟精度不高)。

对于RTC,可以在LSI、LSE和HSE中都启用,但是一般从精度问题出发选择LSE

SYSCLK系统时钟(不属于这五个时钟) HSE、HSI和PLL时钟这三个源。

三态时钟可以经由SW生成系统时钟直接用作以太网PTP的时钟,并且相关联的时钟可以经由AHB分束器(PSC )配置。

系统时钟部分

LSE低速外部时钟:32.768khz来自相应晶体振子,而HSE高速外部时钟:从外部晶体振子产生4-26 MHz (2- 31位以使RTC有效)

[

MCO1 (支持pc9 )和MCO1(支持PA8 )芯片的两个引脚可以将系统内部的时钟输出到两个引脚

MCO1可以向PA8输出4种不同的时钟源HIS、LSE、HSE、PLL

MCO2可以向PC9输出4种不同的时钟源HSE、PLL、SYSCLK、PLLI2S

MCO的最大输出时钟为100MHz以下

(例如,如果sysclk的最大频率为168MHz,则必须先进行分频才能输出MCO。)

] HSI高速内部时钟:来自内部RC振荡器的16MHz时钟(精度不高)可以用作MCO1时钟源,(直接选择器)也可以用作直接系统时钟源。 当HSI时钟传递到PLL时,PLL(锁相环/锁相回路):锁相环锁相环用于集成时钟信号并正常操作高频装置,以及振荡器中的馈线,例如访问存储器HSE或HSI作为下图的主PLL选择器时钟源,对“/M”分频器进行分频后,产生频率重新输入,PLL时钟(为系统时钟提供时钟源)、PLL48CK时钟) USBOTG,48MHz 实际的PLL是倍频、分频引起的时钟信号的迁移。

PLL主程序

专用PLL

计算频率

USBPHY时钟和以太网MAC时钟

寄存器中相关函数

1 .时钟启用配置:

RCC_HSICmd、RCC_LSICmd、RCC_PLLCmd、RCC_PLLI2sCmd,

RCC_PLLSAICmd,RCC_RTCCLKCmd,

RCC _ ahbxperiphclockcmdrcc _ apbxperiphclockcmd

2 .时钟源和时钟相关配置:

RCC_HSEConfig、RCC_LSEConfig、RCC_PLLConfig、RCC _ pl li2 sconficrcc _ pllsaiconfig、RCC_MCO1Config、

RCC_MCO2Config、RCC_sYSCLKConfig、RCC_HCLKConfig,

RCC_PCLK1Config,RCC_PCLK2Config,RCC_RTCCLKConfig,RCC_12SCLKConfig

3 .外围设备复位函数:

RCC_AHB1PeriphResetCmd,RCC_AHB2PeriphResetCmd,

RCC_AHB3PeriphResetCmd,RCC_APB1PeriphResetCmd,

RCCAPB2PeriphResetCmd

4 .状态参数获取参数:

RCC_GetsYSCLKSource,

RCC_GetClocksFreq,

RCC_GetFlagStatus,RCC_ClearFlag

5.RCC中断相关函数:

RCC_ITConfig,RCC_ClearITPendingBit,RCC_GetITStatus

(注意:固件库中很少调用HSI、HSE等时钟源配置函数。 默认系统时钟初始化设置为Systemlnit,因此直接操作寄存器进行设置。 )

SystemInit——1设置. Hclock、Pclock1和Pclock2设置

2.PLL选择时钟源(通常选择HSE,如果HSE有问题,则通过CSS控制另一时钟) ) )。

3 .配置PLL时钟,等待准备就绪

4 .系统时钟选择PLL作为时钟源,并等待就绪。

)例)先接通HSE时钟,等待启用,设置AHB、APBx的分频系数,选择HSE为主PLL的时钟源,配置主PLL的倍频、分频系数,通过PLL输入的时钟源

Systick计时器Systick计时器是24位计时器,当倒计时变为0时,从RELOAD寄存器自动重新加载定时初始值。 除非清除Systic控制和状态寄存器的有效位,否则它不会停止。 (简而言之,让CPU继续重复计数; systic计时器主要用于延迟而不是其他计时器,以节省MC

U资源的目的)。

Systick定时器相关寄存器:

CTRL Systick控制和状态寄存器:存放使能位、中断位、时钟源选择位等(其第0位可以使能计数器)
位16:当前值寄存器递减到0,位16置1
位2:时钟源选择位
0:使用外部参考时钟
1:使用内核时钟
位1:0使能SysTick中断,当前值寄存器递减到0时产生中断
位0:0SysTick时钟使能;
LOAD Systick自动重装载值寄存器:计数器倒数到0时重装载值(当前值寄存器为0时,自动将重装载值重装到当前值计数器,重装载值的大小需要自己设置);
VAL Systick当前值寄存器:随着时钟一直递减,递减到0时使LOAD Systick重装载(则计数器从这个值继续递减,注意使用前后记得清零)。

实现原理图

systick定时器进行工作时,先将LOAD的值置入VAL寄存器中,VAL开始倒数减一,每一个减一经过一个Systick定时器设置的时钟频率

NVIC

NVIC,提供中断控制器,用于总体管理异常,称之为“内嵌向量中断控制器——Nested Vectored Interrupt Controller (NVIC)。NVIC 依照优先级处理所有支持的异常,每个中断可以支持 4 级离散中断优先级;STM32的中断向量有两个属性,一个为抢占属性,一个为响应属性,其属性编号越小优先级越高。
抢占属性:也叫打断属性,是指执行某中断过程时系统遇到优先级更高的中断过程,先中断正在进行的中断过程执行优先级高的再执行原中断过程;
响应属性:两个中断向量的抢占优先级相同时,如果两个中断同时到达,则先执行相应优先级较高的中断。

STM32的指定中断优先级的寄存器位有4位,这4个寄存器位的分组方式如下:
第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级
STM32用高四位来表示抢占和响应优先级:bit=1表示抢占;bit=0表示非抢占;所以共有5种情况:
  Bit7  Bit6 Bit5   Bit4
第0组 0   0   0   0
第1组 1   0   0   0
第2组 1   1   0   0
第3组 1   1   1   0
第4组 1   1   1   1
优先级别:数字越小优先级越高,抢占级数字小的可剥夺抢占级数字大的
规则:
1.抢占相同,响应优先级不同,此时没有抢占剥夺,此时按照响应优先级顺序排序;
2.抢占和响应优先级都相同但有先后,此时无抢占剥夺,依照FIFO(先进先出),前一个执行完了才能执行后者;
3.抢占和响应优先级都相同且同时到达,此时按照中断向量表顺序排先后。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。