打印

请教大家中断的问题,执行NVIC_Init时,出了问题

[复制链接]
5051|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lovegoogle|  楼主 | 2008-5-6 23:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
      
#ifdef  VECT_TAB_RAM
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif

 /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* Enable the EXTI9_5 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

当执行NVIC_Init的时候,执行不了。
在NVIC_Init函数中
NVIC->ISER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
      (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);

找了好久,不知道出了什么问题?可能是我的理解错了
沙发
lovegoogle|  楼主 | 2008-5-7 13:11 | 只看该作者

有人知道吗?

执行到NVIC_Init执行不下去了,有人遇到么?

使用特权

评论回复
板凳
dkill| | 2008-5-7 14:01 | 只看该作者

解决了吗

使用特权

评论回复
地板
zhang..yb| | 2008-5-7 14:15 | 只看该作者

中断向量位置

你在RAM中还是在FLASH中调试? 中断向量位置不一样!!

使用特权

评论回复
5
lovegoogle|  楼主 | 2008-5-7 20:24 | 只看该作者

没有解决的,

是在ram当中调试的,
中断向量位置不一样?初次做arm开发,不明白

使用特权

评论回复
6
jtingwang| | 2008-5-8 10:58 | 只看该作者

用IAR吗?

用IAR吗?.xcl文件对了没有?

使用特权

评论回复
7
lovegoogle|  楼主 | 2008-5-8 12:19 | 只看该作者

是用IAR

还是不行,比较原来的example中的.xcl文件,都是一样的,不知道为什么?
还有,NVIC_IRQChannelPreemptionPriority ,NVIC_IRQChannelSubPriority ;是怎么确认的?看了手册,还是不明白!
有经验的帮忙看一下,谢谢!

使用特权

评论回复
8
jtingwang| | 2008-5-8 13:27 | 只看该作者

中断向量表、中断服务程序加进去没有?

中断向量表、中断服务程序加进去没有?

使用特权

评论回复
9
ST_ARM| | 2008-5-8 13:27 | 只看该作者

定义了VECT_TAB_RAM吗?

在RAM中调试,需要定义VECT_TAB_RAM。

使用特权

评论回复
10
lovegoogle|  楼主 | 2008-5-8 22:35 | 只看该作者

已经定义了,但还是没有解决

还是不行,估计是还是NVIC_IRQChannelPreemptionPriority ,NVIC_IRQChannelSubPriority定义错误,大家有没有遇到该情况? 

使用特权

评论回复
11
YeCM| | 2008-5-9 12:52 | 只看该作者

把你的程序传上来

还能把你的程序上传啊 大家可以帮你调下,对解决问题有帮助。

使用特权

评论回复
12
lovegoogle|  楼主 | 2008-5-9 21:52 | 只看该作者

还是没有解决

看错,还是没有解决!!
换成下面这样,就可以执行了,估计还是没有理解exti?
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* Enable the EXTI9_5 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;//EXTI3_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;




-------------
哈哈,用的是力源送的mini板,今天把片子焊下来换了103的,居然可以执行了,难道是ram不够,执行就出问题。有点怪异!!
------------

使用特权

评论回复
13
lovegoogle|  楼主 | 2008-5-10 11:45 | 只看该作者

弄错了,

刚上电的第一次可以执行,但第二次就不可以了,谢谢!

使用特权

评论回复
14
nxxiaoyaozi| | 2010-10-13 15:32 | 只看该作者
08 年的贴 我今天才遇到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

粉丝