STM32F407倒计时秒表0.01单位时间程序设计
时间: 2023-08-01 10:13:11 浏览: 100
以下是一个简单的 STM32F407 倒计时秒表程序设计,以 0.01 秒为单位计时:
```c
#include "stm32f4xx.h"
volatile uint32_t counter = 0;
void SysTick_Handler(void)
{
counter++;
}
void delay_ms(uint32_t ms)
{
uint32_t start = counter;
while ((counter - start) < ms);
}
int main(void)
{
SystemCoreClockUpdate();
SysTick_Config(SystemCoreClock / 10000); // 0.01 秒为单位
while (1)
{
uint32_t seconds = 10;
uint32_t milliseconds = seconds * 1000;
uint32_t ticks = milliseconds / 10;
for (uint32_t i = 0; i < ticks; i++)
{
delay_ms(10);
}
}
}
```
该程序使用 SysTick 定时器来进行计时,每隔 0.01 秒触发一次 SysTick_Handler 中断,并累加计数器 counter。delay_ms 函数用于延迟指定的毫秒数,该函数在计时器计数器 counter 达到指定的值后返回。
在主函数中,设置计时器的总秒数为 10 秒,将其转换为毫秒数并除以 10 得到总的计时器滴答数。循环执行 delay_ms 函数累加计时器,直到达到总的计时器滴答数为止。
阅读全文