网站建设和seo是什么关系,徐州企业自助建站,网站后台如何做下载连接,网站做微信支付宝支付STM32时钟系统的概述
概念
时钟系统是由振荡器#xff08;信号源#xff09;、定时唤醒器、分频器等组成的电路。
常用的信号有晶体振荡器和RC振荡器。
意义
时钟是嵌入式系统的脉搏#xff0c;处理器内核在时钟驱动下完成指令执行#xff0c;状态变换等动作#xff…STM32时钟系统的概述
概念
时钟系统是由振荡器信号源、定时唤醒器、分频器等组成的电路。
常用的信号有晶体振荡器和RC振荡器。
意义
时钟是嵌入式系统的脉搏处理器内核在时钟驱动下完成指令执行状态变换等动作外设部件在时钟的驱动下完成各种工作比如串口数据的发送A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的通常时钟系统出现问题也是致命的比如振荡器不起振、振荡器不稳、停振等。 常见振荡器简介
概念
振荡器是用来产生重复电子讯号的电子元件。其构成的电路叫振荡电路能将直流电转换为具有一定频率交流信号输出的电子电路或装置。
分类
振荡器主要分为RC、LC振荡器和晶体振荡器。
RC振荡器采用RC网络作为选频移相网络的振荡器。
LC振荡器是采用LC振荡回路作为移相选频网络的正反馈振荡器。
晶体振荡器的振荡频率收石英晶体控制。
RC振荡器
RC振荡器是由电阻电容构成的振荡电路能将直流电转换为具有一定频率交流信号输出的电子电路或装置。
优点实现成本比较低毕竟就是一个电阻电容。
缺点由于电阻电容的精度问题所以RC振荡器的振荡频率会有误差同时受温度、湿度影响。 LC振荡器
LC振荡器使用一个电感L和一个电容C组成的电路。
工作原理是通过电感和电容之间的相互作用来产生振荡信号。
当电容充电时它会储存能量并通过电感释放能量。
LC振荡器的频率由电感和电容的数值决定。
晶体振荡器
石英晶体振荡器是高精度和高稳定度的振荡器被广泛应用于彩电、计算机等各类振荡器电路中以及在通信系统中用于频率发生器、为数据处理设备产生时钟信号和特定系统提供基准信号
优点 相对来说振荡频率一般都比较稳定同时精度也较高。
缺点价格稍微较高晶体振荡器一般还需要接两个15~33pf起振电容。
STM32F0时钟源介绍
STM32中有四个时钟源
HSI高速内部时钟RC振荡器频率为8MHz
HSE高速外部时钟可以石英 / 陶瓷振荡器或者接外部时钟源频率范围为4MHz~16MHz
LSI低速内部时钟RC振荡器频率为40KHz。独立看门狗时钟源智能是这个还可以做RTC时钟源
LSE低速外部时钟接37.768KHz的石英晶体。主要是RTC的时钟源
STM32时钟树部分 SysTick定时器
概念
定时器能够定时、计数的器件称为定时器
SysTick称作系统滴答定时器。是一个定时设备位于Cortex - M0内核中可以对输入的时钟进行计数当然如果时钟信号是周期性地计数也就是计时。
系统定时器一般用于操作系统用于产生时基维持操作系统的心跳。根据这个中断系统就可以实现时间片的计算从而切换进程。
工作原理
滴答定时器是一个24位定时器也就是最多能计数2^24.在使用的时候我们一般给计数器一个初始的计数值计数器向下计数每来一个时钟信号计数初值就减一计数值减到0的时候就会触发一次中断。然后重新计数初值再减一计数循环不断。
原理图 SysTick寄存器 SysTick定时器初始化
// Main中已经实现对SysTick定时器的初始化
void SystemClock_Config(void)HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);SysTick_Config(TicksNumb); SysTick中断相关 HAL_Delay()函数 //利用SysTick实现精准的延时
__weak void HAL_Delay(__IO uint32_t Delay)
{uint32_t tickstart 0U;tickstart HAL_GetTick();while((HAL_GetTick() - tickstart) Delay) ;
} HAL_Delay() 的局限 HAL库的延时函数有一个局限性在中断服务函数中使用HAL_Delay会引起混乱因为它是通过中断方式实现而 Systick 的中断一般操作系统优先级是最低的所以在中断中运行 HAL_Delay会导致死锁的现象。
STM32通用定时器介绍
STM32F051xx系列器件包括多达6个通用定时器1个基本定时器和1个高级定时器 几种定时器功能比较
通用定时器TIMx功能
定时器定时计数输入捕获输出比较PWM输出使用外部信号控制定时器和定时器互连的电路
高级定时器TIM1功能
通用定时器的功能带死区控制和紧急刹车可用于PWM控制电机
基本定时器TIM1功能
主要运用于定时计数以及驱动DAC
定时器计数模式
向上计数模式
计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器移除事件。
向下计数模式
计数器从自动装入的值TIMx_ARR开始向下计数到0然后从自动装入的值重新开始并产生一个计数器向下溢出事件。
中央对齐模式向上 / 向下计数
计数器从0开始计数到自动装入的值-1产生一个计数器溢出事件然后向下计数到1并且产生一个计数器溢出事件然后再从0开始重新计数。 定时器计数原理
时钟源定时器时钟TIMxCLK即内部时钟CK_INT经APB预分频器后分频提供
计数器时钟定时器时钟经过PSC预分频器之后即CK_CNT用来驱动计数器计数
计数器CNT是一个16位/32位的计数器
自动重装载寄存器这里面装着计数器能计数的最大数值。当计数到这个值得时候如果使能了中断的话定时器就产生溢出中断
计时中断时间1/(TIMxCLK/(PSC1)) * (ARR1) 定时器输入捕获与输出比较
输入捕获输入捕获可以用来捕获外部事件比如引脚的电平变化上升沿下降沿并记录下变化的时间通常可以用来测量外部信号的频率或者电平持续的时间 输出比较此项功能是用来控制一个输出波形当计数器与捕获/比较寄存器的内容相同时输出比较功能做出相应动作比如电平的翻转。通常用于生产PWM波形