扬升科技

1秒是多少毫秒(2毫秒等于多少秒)

11esengof|
76

注:本文使用的芯片为cortex-m3系列STm32F103VET6,本文涉及的内容涵盖了整个STM32F1系列M3单片机。

本文适合初学者学习STM32。

STM32定时器包括基本定时器、通用定时器和高级定时器,其中TIM6和TIM7是STM32中的基本定时器。作为初学者,先从基础的开始学是容易的。让我们用这个定时器实现毫秒级延时功能来入门STM32定时器的应用。

学习MCU意味着学习使用它的寄存器。即使使用库函数,寄存器也是必须学习的。

让我们简单看一下寄存器。CR1和CR1是控制寄存器,SR是状态寄存器,ARR是溢出寄存器,CNT是计数器的当前值,PSC是预分频器。预分频寄存器?我傻眼了。我能理解前面的寄存器。当我听到预分频器时,我似乎不知道它是干什么用的。您可以将0到65535之间的一个值写入预分频器,该值为1,即定时器运行的时钟。比如单片机工作在主频72MHz,预分频寄存器写0,预分频系数为0 1=1,定时器时钟为72m Hz/1=72m Hz;再举个例子,比如单片机仍然工作在主频72MHz,预分频寄存器写71,预分频系数为71 1=72,定时器时钟为72MHz/72=1MHz。知道定时时钟有什么用?相信很多初学者都不知道,定时器时钟与定时器计数器CNT的增量间隔有关。根据频率和周期f=1/T的公式,定时器计数器的递增间隔为1/定时器时钟。例如,当定时器时钟为1MHz时,定时器计数器的增量间隔为1/1mhz=1ms。此时,如果将溢出值设置为1000,则为1000*1us=1ms溢出。

1.直接*作寄存器

接下来,让我们首先通过直接*作寄存器来编写一个毫秒延迟函数:

无效延迟_毫秒(uint16_t毫秒)

{

TIM6-