在STM32L431芯片中尝试调用systick_init函数编写SysTick_Handler函数来实现计时功能。
以下是在STM32L431芯片中,调用systick_init函数,编写SysTick_Handler函数,实现计时功能的代码:
#include "stm32l4xx.h"
void systick_init(void)
{
SysTick->CTRL = 0; // Disable SysTick timer
SysTick->LOAD = 4000; // Set reload value (4000 for 1ms interval @ 4MHz)
SysTick->VAL = 0; // Reset SysTick counter value
SysTick->CTRL = 0x07; // Enable SysTick timer with interrupt
}
void SysTick_Handler(void)
{
static uint32_t counter = 0;
counter++;
}
int main(void)
{
systick_init();
while(1)
{
// do something
}
}
在上面的代码中,systick_init函数用于初始化SysTick定时器,设置重载值为4000,即每1ms触发一次中断。SysTick_Handler函数为SysTick定时器的中断服务函数,每次触发中断时,counter变量自增1,即表示经过了1ms。在main函数中,我们调用systick_init函数进行初始化,然后进入一个无限循环,可以在循环中进行其他的操作。通过counter变量,我们可以得到经过的时间,例如counter的值为1000时,表示已经经过了1秒
原文地址: https://www.cveoy.top/t/topic/fXcn 著作权归作者所有。请勿转载和采集!