Board logo

标题: STM32F429ZIT6U-SysTick [打印本页]

作者: look_w    时间: 2018-1-24 20:35     标题: STM32F429ZIT6U-SysTick

SysTick—系统定时器是属于ARM内核中的一个外设,内嵌在NVIC中,
一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK。
SysTick—系统定时有4个寄存器,如下图,详细参考CM4内核编程手册(英文)
有的时候程序需要用比较精确的延时,所以编写一个精确的延时程序非常有必要,特别是在写一些对时序要求比较高的程序,比如模拟的SPI、IIC,STM32的硬件IIC和SPI 我用的不多,没怎么搞过。
一般的延时有纯软件延时、定时器延时、定时器中断延时。
1、软件延时由于ARM内核多级流水线的指令执行方式,比较难算出精确的延时时间。
以下两种较为精确
2、定时器延时
3、定时器中断延时
这次用了SysTick定时器分别尝试了定时器和定时器中断两种定时方法。效果差不多,感觉误差比想象中大了那么一点点。
定时器延时10us,IO口波形如下:
定时器延时1s,IO口波形如下:
定时器中断延时10us,IO口波形如下:
定时器中断延时1s,IO口波形如下:
看波形感觉都差不多,定时器中断延时和定时器延时。都可以用,效果么就是闪灯咯,blinking blinking blinking




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0