打印
[其他ST产品]

systick定时器初始值设置为0有没有效

[复制链接]
59|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2025-1-17 12:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
cortex m3编程手册中说SysTick reload value register (STK_LOAD) 的值可以设置成0,但是实际没有作用。
同时也说了赋值应为实际值减一。
那是不是不能计数1个tick。计数1个tick需要设置SysTick reload value register (STK_LOAD) 为0,但实际又不起作用。

使用特权

评论回复
沙发
内政奇才| | 2025-1-17 13:51 | 只看该作者
在Cortex-M3的SysTick定时器中,SysTick reload value register (STK_LOAD) 的值确实可以理论上设置为0,但实际上这样做并没有意义,因为SysTick定时器是一个24位、向下递减的计数器,其主要目的是在计数器递减到0时产生中断或执行其他指定的操作。

使用特权

评论回复
板凳
内政奇才| | 2025-1-17 13:51 | 只看该作者
关于“赋值应为实际值减一”的说法,这通常是指在设置SysTick的重载值时,如果你希望定时器在特定的时钟周期数后产生中断,你需要将这个周期数减1后写入STK_LOAD寄存器。这是因为当计数器从设定的值递减到0时,SysTick定时器会产生中断(如果中断使能位被设置),而写入的值实际上是计数器需要递减到的目标值的前一个数。

使用特权

评论回复
地板
AutoMotor| | 2025-1-17 15:33 | 只看该作者
赋值成0应该就什么也用不了了吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

441

主题

2191

帖子

1

粉丝