stm32-M3系统时基定时器

本文介绍了STM32-M3的系统时基定时器,这是一个24位递减计数器,用于滴答时钟。在72MHz系统时钟下,设置合适的初值可以实现10ms的定时。当计数器到达0时,会自动重载并触发中断。通过示例程序展示了如何利用系统时基定时器实现1s间隔的LED闪烁功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stm32-M3有一个系统时基定时器,其为一个24位递减计数器。系统时基定时器设置初值并使能后,每经过一个系统时钟周期,计数器就减一,当计数器递减到0时,系统时基定时器自动重装载初值,并继续向下计数,同时内部的COUNTFLAG标志会置位,触发中断。

系统时基定时器功能简单,只能提供一个时基定时器,作为滴答时钟。在外部晶振8MHZ,通过PLL9倍频,系统时钟为72MHz,系统时钟定时器的递减频率可以设为9MHz(HCLK/8),在这个条件下,把系统定时器的初值设置为90000,就能够产生10ms的时间基值。如果开启中断,则产生10ms的中断。值得欣慰的是时基定时器的中断并不需要清除中断位,系统会自动清除。

下面通过一个简单的程序,让灯1s跳变一次。

void SysTick_Configuration(void)
{
   /* Configure HCLK clock as SysTick clock source */
   SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //系统时钟8分频
   /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
   SysTick_SetReload(90000); //周期10ms
   /* Enable the SysTick Interrupt */
   SysTick_ITConfig(ENABLE); //打开中断
  /* Enable the SysTick Counter */
  SysTick_CounterCmd(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值