我已经玩了几天SysTick,我无法达到纳秒延迟。是否可以使用Systick达到如此小的值,或者我必须使用定时器和中断?虽然LED的工作时间不会低于350ns。这是我的usb示波器的图像:
一般来说,我想制作一个项目(我只是在尝试上面的LED和SysTick),这将是这样的:
其中Δt= 250ns(其他参数将以某种方式确定)。问题是,我可以使用SysTick制作这些脉冲吗?
答案 0 :(得分:1)
STM32F407VG 具有 24位 SysTick定时器,其最大时钟速度为 168MHz (核心时钟速度)。这意味着,即使您将SysTick重载寄存器设置为:
0x000001(1个周期)
您只能有5.95ns的周期。
答案 1 :(得分:0)
我在RM0368参考手册的 6.2 Clocks 部分找到了这个:
RCC通过AHB时钟(HCLK)除以8来提供Cortex系统定时器(SysTick)的外部时钟.SysTick可以使用此时钟或Cortex时钟(HCLK)工作,可配置为SysTick控制和状态寄存器。
因此,最大滴答速率可能受时钟分频的限制。检查图12.时钟树以查看应该使用哪个时钟配置来获得最大速度。