系统时钟(stm32mini)(学习笔记)

一、时钟系统

时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作.外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转 换、定时器计数等等。

1.STM32时钟系统框图
92705b1f86aa49e2af89297c75c82578.png

时钟源:HSI RC,HSE OSC,LSE OSC,LSI RC,PLL。

绿色的是预分频,是指系统时钟先经过固定的分频系数后产生相应频率的时钟,提供给单片机定时器的计时输入。(预分频器对时钟进行预分配,简单来说就是分频,像乘2、除1等等)

2、时钟源


1.STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL。

  • HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。
  • HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz
  • LS是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。WDG
  • LSE是低速外部时钟,接频率为32768kHz的石英晶体。RTC
  • PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2,倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

2.系统时钟SYSCLK可来源于三个时钟源:

  1. HSI振荡器时钟
  2. HSE振荡器时钟
  3. PLL时钟

3.STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。

注意:任何一个外设在使用之前,必须首先使能其相应的时钟。

4.几个重要的时钟:

  • SYSCLK(系统时钟): AHB总线时钟
  • APB1总线时钟(低速):速度最高36MHz
  • APB2总线时钟(高速):速度最高72MHz
  • PLL时钟


3、相关寄存器

e192cd95ad40442092c3b06a15533228.png

 红色的是经常用的

dc803ac7f0ed4520950947798b55685f.png

二、Systick滴答定时器延时函数

1、Systick定时器定义及作用

Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,计到0时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。

SysTick定时器被捆绑在NVIC中,用于产生 SYSTICK异常(异常号:15)。 Systick中断的优先级也可以设置。

2、相关寄存器

有4个Systick寄存器

  • CTRL :SysTick控制和状态寄存器
  • LOAD :SysTick自动重装载除值寄存器
  • VAL :SysTick当前值寄存器
  • CALIB :SysTick校准值寄存器

CTRL寄存器

3ac03eb403124ef5b841d63b6f5fbcf7.png

 

LOAD,VAL寄存器
7ff2765d1e124f28987206db6c43a939.png

 

5、相关库函数

固件库中的Systick相关函数:

SysTick_CLKSourceConfig()//Systick时钟源选择 misc.c文件中

SysTick Config(uint32tticks)//初始化systick,时钟为HCLK,并开启中断

Systick中断服务函数:

void SysTick Handler(void);

6、SysTick_CLKSourceConfig函数
85baca1bd996413484cb1f8b7a926a71.png
7、实现延时的模板adbfb4ee068940ce92ede43e70db0c9e.png

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于学习STM32CUBEMX,我可以提供一些学习笔记和建议。首先,了解STM32CUBEMX是什么以及它的作用。STM32CUBEMX是一个图形化的配置工具,用于快速生成STM32微控制器的初始化代码和配置文件。 以下是一些学习STM32CUBEMX的步骤和注意事项: 1. 安装和启动:首先,你需要下载并安装STM32CUBEMX软件。安装完成后,启动软件。 2. 选择芯片型号:在启动界面上,选择你要使用的STM32微控制器型号。如果你不确定选择哪个型号,可以查阅相关的STM32官方文档或参考资料。 3. 配置引脚:在主界面上,你可以看到一个引脚图,它显示了你所选芯片的引脚布局。通过拖拽和连接引脚,你可以配置外设的连接方式。 4. 配置时钟:在时钟配置选项卡中,你可以设置系统时钟和外设时钟。根据你的应用需求,选择合适的时钟源和分频系数。 5. 配置外设:在外设配置选项卡中,你可以启用或禁用各种外设,如UART、SPI、I2C等。你还可以配置它们的参数,例如波特率、数据位数等。 6. 生成代码:完成以上配置后,点击“生成代码”按钮,STM32CUBEMX将为你生成初始化代码和配置文件。你可以选择使用HAL库或标准外设库,以及选择你喜欢的开发环境。 7. 导入代码:将生成的代码导入到你的开发环境中,并进行编译和烧录。 除了以上步骤,还有一些额外的学习资源可以帮助你更好地理解和使用STM32CUBEMX。例如,你可以查阅官方文档、参考手册、应用笔记和示例代码等。 希望这些学习笔记对你有所帮助!如果你有更多问题,可以随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值