STM32
直播中

苏醒

7年用户 203经验值
私信 关注
[问答]

如何解决库函数NVIC的设置报错问题?

void NVIC_init()
{
#ifdef  VECT_TAB_RAM  
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);   //向量表位于RAM
#else
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   //向量表位于FLASH
#endif
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = EXti9_5_IRQChannel ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;    //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;     //从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);   
}
这是我写的一个NVIC配置的函数,但是工程写完了以后
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel ;这句总是报错Appmain.c(91): error:  #20: identifier "EXTI9_5_IRQChannel" is undefined的未定义错误,我怀疑是固件库手册搞错了,因为碰见过这样的问题,比如 NVIC_Init(&NVIC_InitStructure);   这句,固件库就是错误的 NVIC_InitStructure(&NVIC_InitStructure);   ,不知道有没有朋友遇到过中断配置出错的问题?

回帖(4)

高博

2019-7-16 09:02:40
参考下光盘的固件库例子.
举报

孙伟

2019-7-16 09:15:04
恩,找到错误了,刚才仔细翻查了例程,正确的形式是NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; 看来固件库的错误还真不少,我还找到一个错误,就是上面提到的 NVIC_Init(&NVIC_InitStructure);   而不是固件库中的 NVIC_InitStructure(&NVIC_InitStructure);希望与大家分享经验,以后少走弯路,呵呵~   
举报

黄璨

2019-7-16 09:32:59
谢谢你的分享!!!我刚才也遇到了这个问题!!!!非常感谢!
举报

蔡旻杨

2019-7-16 09:52:39
你用的是旧的版本!固件库手册对应的是3.0之前的版本!!!!而新的库中NVIC 、SysTick都有所改变!!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分