TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP432P401R 无法使用外部中断

今天用401R外部中断例程看到这样的代码

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(PORT1_VECTOR))) Port_1 (void)
#else
#error Compiler not supported!
#endif

大概就是如果定义了 

TI_COMPILER_VERSION
或者
IAR_SYSTEMS_ICC 就可以使用外部中断之类的意思
如果都没有定义就跳出错误提醒:
#error Compiler not supported!
结果我运行的时候就跳出错误提示了
请问我是哪个文件没有添加才会有这种问题吗?(用的KEIL)

RoundRoad:

这个提示是说,如果不是用TI或者IAR的编译器,就无法正常编译中断服务函数,因为编译时需要编译器支持 的特殊字符。

user5369591:

回复 RoundRoad:

那请问 我在keil 里面是不是就可以把这段删了就正常写

user5369591:

void PORT_Init(void) {P1DIR &= ~(BIT1 + BIT4);P1REN |= (BIT1 + BIT4);P1OUT |= (BIT1 + BIT4);P1IES |= (BIT1 + BIT4);P1IFG &= ~(BIT1 + BIT4);P1IE |= (BIT1 + BIT4);NVIC->ISER[0] = 1 << ((PORT1_IRQn) & 31);
}

void PORT1_IRQHandler(void)
{switch(P1IV){case P1IV__P1IFG1:pidA.target -= 100;break;case P1IV__P1IFG2:pidA.target += 100;break;default:break;}
}

这是代码 不知道有没有问题

user5369591:

回复 user5369591:

有一个小问题case语句里的P1IV_P1IFG2 应该是P1IV_P1IFG4然而改过来也没有用

Susan Yang:

关于Keil下的MSP432使用,我们是有一个专门的文档的

适用于 SimpleLink™ MSP432™ 微控制器的 ARM® Keil® MDK 版本 5

www.ti.com.cn/…/zhcu167f.pdf

有非常详细的操作步骤,希望对您有所帮助!

user5369591:

回复 Susan Yang:

非常感谢

Susan Yang:

回复 user5369591:

很高兴能帮到您!

赞(0)
未经允许不得转载:TI中文支持网 » MSP432P401R 无法使用外部中断
分享到: 更多 (0)