基于STM32的systick CPU占用率 代码实现
时间: 2023-09-04 19:15:05 浏览: 50
以下是基于STM32的systick CPU占用率代码实现:
```c
#include "stm32f10x.h"
volatile uint32_t systick_count = 0; // 记录systick中断次数
volatile uint32_t cpu_usage = 0; // 记录CPU占用率
volatile uint32_t last_count = 0; // 记录上一个systick_count值
void SysTick_Handler(void)
{
systick_count++; // 每次systick中断,systick_count加1
}
int main(void)
{
SystemInit(); // 系统初始化
SysTick_Config(SystemCoreClock / 1000); // 配置systick为1ms中断一次
while(1)
{
if(systick_count != last_count) // 如果systick中断次数有变化
{
cpu_usage = (systick_count - last_count) * 100 / 1000; // 计算CPU占用率
last_count = systick_count; // 更新上一个systick_count值
}
}
}
```
在上面的代码中,我们使用了systick定时器,并在定时器中断服务程序中计算了CPU的占用率。systick的中断频率为1ms,每次中断时,我们将systick_count加1。在主循环中,我们检查systick_count是否有变化,如果有,则计算CPU占用率,更新上一个systick_count值。最后,我们可以使用cpu_usage变量来监视CPU占用率。