STM32启动定时器6程序就会卡住的解决方法


1 问题现象

  • 最近想做一版应用定时器6的代码例程,但发现每次代码运行到“TIM_Cmd(TIM6, ENABLE);”,代码就跑飞了,一直卡在“Reset_Handler”

  • 开启定时器6的代码是从开发“IAP”功能的例程中移植出来的,“IAP”功能例程里有Boot程序和App程序两部分。

2 问题原因

  • 突然想起来,在写“IAP”功能例程时,我修改了“中断向量表flash起始地址”!!!

  • 在没有Boot这部分代码的情况下,如果不重新更改“中断向量表flash起始地址”,那么一旦开始使能定时器中断,必定会导致程序跑飞。

3 解决方法

  • 在写“IAP”功能例程时,我在三个地方修改了App程序的起始地址,所以只要在“应用定时器6的代码例程”里以下三个地方将App代码运行起始地址改过来就可以了

    • 1、system_stm32f10x.c里,VECT_TAB_OFFSET 改为 0x0000
      Alt

    • 2、Keil → 魔术棒 →“Target”里, IROM1 Start 改为 0x8000000
      在这里插入图片描述

    • 3、Keil → 魔术棒 →“Debug”“Settings”“Flash Download”“Start” 改为 0x08000000,里
      Alt
      Aa=lt

4 想说的话


授人以鱼,不如授人以渔

这里只提供钓鱼方法而不是一条完整的鱼

有问题欢迎留言交流 / 指正o( *  ̄▽ ̄ * )ブ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小肥丸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值