固定时间触发timer定时器,完成需要的功能

帮忙详细解释 SysTick 定时器:

AI回到结果

#include “stm32f4xx.h”

void SysTick_Handler(void)
{
static uint32_t counter = 0;

if (counter++ >= 500) {
    GPIO_ToggleBits(GPIOD, GPIO_Pin_12);
    counter = 0;
}

}

int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

// 初始化时钟和 GPIO
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);

// 配置 SysTick 定时器
SysTick_Config(SystemCoreClock / 1000); // 1ms 中断一次

while (1) {
    // 主循环中不需要执行任何操作
}

}

是的,SysTick_Handler 函数需要添加到向量表中,以便在 SysTick 定时器中断发生时能够正确地跳转到 SysTick_Handler 函数执行。在 ARM Cortex-M 处理器中,向量表是一个存储器区域,用于存储中断服务程序的入口地址。当中断发生时,处理器会自动从向量表中读取相应中断的入口地址,并跳转到该地址执行中断服务程序。

在使用 SysTick 定时器时,我们需要将 SysTick_Handler 函数添加到向量表中。在 ARM Cortex-M 处理器中,向量表通常是存储在处理器的 Flash 存储器中的,可以通过修改链接脚本或使用特定的工具来修改向量表。在使用 STM32F4xx 系列芯片时,向量表通常是存储在 Flash 存储器的起始地址处,可以通过修改链接脚本或使用 STM32CubeMX 工具来修改向量表。

__Vectors DCD __initial_sp ;0, load top of stack
DCD RESET_Handler ;1, reset handler
DCD NMI_Handler ;2, nmi handler
DCD HardFault_Handler ;3, hard fault handler
DCD MemManage_Handler ;4, MPU Fault Handler
DCD BusFault_Handler ;5, Bus Fault Handler
DCD UsageFault_Handler ;6, Usage Fault Handler
DCD 0 ;7, Reserved
DCD 0 ;8, Reserved
DCD 0 ;9, Reserved
DCD 0 ;10, Reserved
DCD SVC_Handler ;11, svcall handler
DCD DebugMon_Handler ;12, Debug Monitor Handler
DCD 0 ;13, Reserved
DCD PendSV_Handler ;14, pendsv handler
DCD SysTick_Handler ;15, systick handler

SysTick_Handler
PROC ;int15
EXPORT SysTick_Handler [WEAK]
B .
ENDP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值