OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7494|回复: 2

问个蠢问题,关于中断与偏移地址的,有点混乱了

[复制链接]

11

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-10-12
在线时间
3 小时
发表于 2012-11-26 17:00:17 | 显示全部楼层 |阅读模式

小弟做IAP,已经成功了,但是还是有点疑问,按照原子大哥的做法是应该在开头有这么一句

SCB->VTOR = FLASH_BASE | 0x10000; /* Vector Table Relocation in Internal FLASH. 中断偏移*/  (库函数版本),作为偏移地址,

可是后来我在程序中又加入了一个计时器中断,和一个按键中断

void Timer5_NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
 
  /* Set the Vector Table base address at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);          

  /* Enable the TIM5 gloabal Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  NVIC_Init(&NVIC_InitStructure);
 
}


void key1InterruptConfig(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
 
  /* Set the Vector Table base address at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);       

  /* Configure the Priority Group to 2 bits */

 

  /* Enable the EXTI Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = GPIO_KEY1_EXTI_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  }

其中都有NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);

可是在其他的中断,例如

void Timer2_NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);             //抢占优先级2位(0,1,2,3),响应优先级2位(0,1,2,3)
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;   //USART1串口中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //设置抢占优先级,,可以再中断中继续嵌套中断
    NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;   //设置响应优先级,,抢占优先级相同时,响应优先越高中断越高
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    //使能IRQ通道
    NVIC_Init(&NVIC_InitStructure);        //按前面设置值初始化NVIC
}
之中。又没有地址,我就有点乱套了,什么时候有地址,什么时候没有地址呢?还是说默认了?

 

新人求指导~~~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-26 18:46:36 | 显示全部楼层
中断偏移只需要设置一次即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-10-12
在线时间
3 小时
 楼主| 发表于 2012-11-27 10:43:51 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
哦哦,我好像明白了,谢谢了
新人求指导~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 00:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表