以下是在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秒

在STM32L431芯片中尝试调用systick_init函数编写SysTick_Handler函数来实现计时功能。

原文地址: https://www.cveoy.top/t/topic/fXcn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录