s32k144 利用systick做延时函数
时间: 2023-09-22 19:07:04 浏览: 307
S32K144可以通过使用SysTick定时器进行延时操作。SysTick定时器是一个24位的倒计时器,可以生成周期性中断。下面是一个简单的示例代码,用于演示如何使用SysTick实现延时函数:
```c
#include "S32K144.h"
void delay_ms(uint32_t ms) {
// 设置SysTick定时器的重载值
SysTick->LOAD = ms * (SystemCoreClock / 1000) - 1;
// 启用SysTick定时器,并设置时钟源为内部时钟
SysTick->CTRL = SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk;
// 等待定时器计数到零
while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk));
// 禁用SysTick定时器
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}
int main(void) {
// 延时1秒
delay_ms(1000);
// 执行其他操作
// ...
return 0;
}
```
在上面的示例代码中,`delay_ms`函数的参数是要延时的毫秒数。在函数中,首先通过设置SysTick定时器的重载值来指定延时的时间。然后启用定时器,并等待定时器计数到零。最后,禁用定时器,延时操作完成。
需要注意的是,由于SysTick定时器是一个全局定时器,因此在使用它进行延时操作时,需要确保不会影响其他部分的代码执行。
阅读全文