在 APM32M3514 电机通用评估板 上使用 SysTick 定时器来实现计划任务LED 闪烁。SysTick 是 Cortex-M 内核提供的一个系统定时器,通常用于操作系统的任务调度或简单的定时任务。
以下是 SysTick 定时器的计划任务实现 LED 闪烁控制任务。
配置 SysTick 定时器 配置 SysTick 定时器,设置其定时周期。 - __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
- {
- if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
- SysTick->LOAD = ticks - 1; /* set reload register */
- NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */
- SysTick->VAL = 0; /* Load the SysTick Counter Value */
- SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
- SysTick_CTRL_TICKINT_Msk |
- SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
- return (0); /* Function successful */
- }
LED 控制函数 实现 LED 的切换功能。 - if (sysTick >= 1000)
- {
- sysTick = 0; // 重置计时器
- static uint8_t ledState = 0; // 用于记录 LED 的当前状态
- if (ledState == 0)
- {
- APM_MINI_LEDOn(LED2); // 打开 LED
- ledState = 1; // 更新状态为开
- }
- else
- {
- APM_MINI_LEDOff(LED2); // 关闭 LED
- ledState = 0; // 更新状态为关
- }
- }
实现效果
|