我先需要将KE02的 PTB4引脚用作普通的GPIO ,想把这个引脚的NMI功能禁用了,不然当我这两个引脚接低电平后就立即进入中断,程序就不能运行了!
Hello ,
Which IDE do you use ?
About disable the NMI , you use this register : System Options Register (SIM_SOPT) -> NMIE bit (KE02 reference manual )
Have a great day,
Alice
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
我再网上的这篇文章(ARM开发工具专版-如何在IAR、Keil和Codewarrior中禁止掉Kinetis的NMI脚-爱板网论坛 - 手机版 - 电子工程师学习交流园地)中有关于禁止掉NMI功能的介绍,但是我在我的
Hello,
(1) 我查看了您参考的这篇文章,文章是真对kinetis K 系列芯片, K 和KE 系列的内核都是不同的。
从KE 系列的手册中可以看出,在FLASH Option Register 寄存器中,没有说有disable NMI 功能
。
(2)禁止NMI ,硬件方面上电前必须上拉一个电阻将其拉高。
希望我的回答对您有帮助
Alice
呵呵 谢谢 是的 正如你所说的在FOPT中我也没找到禁止NMI的内容,不过我的问题已经解决 ,NMI也是中断之一,我采用的方法是重新做了一个NMI的中断服务函数在中断服务函数中将NMI给禁止了,不知道有没有问题啊,反正现在程序运行了一段时间还没问题
void NMI_Isr(void)
{
SIM->SOPT&=~SIM_SOPT_NMIE_MASK;
return;
}
但是我安照上面操作后上电过程中PTB4若果为低电平程序仍然不能运行,一直进入default_isr()
你好
你说的这个(SIM_SOPT) -> NMIE bit我已经试过了我的方法是:
在sysinit中将sSIMConfig.sBits.bDisableNMI=ENABLE;这样在函数SIM_Init(&sSIMConfig); 中就可以将
(SIM_SOPT) -> NMIE bit置0
我用的 IDE keil uVsion 5。
我用这个寄存器试了 Register (SIM_SOPT) -> NMIE bit 但是不管用!!!只有当PTB4脚上电时为高电平这时候程序能正常启动运行,程序正常运行后再将PTB4改为低电平就正常了,但是如果PTB4上电时为低电平程序就一直进中断
void default_isr(void)
我的程序是在void sysinit (void)中将sSIMConfig.sBits.bDisableNMI=ENABLE;这样进入 SIM_Init(&sSIMConfig); 这里后
if(pConfig->sBits.bDisableNMI)
{
u32Sopt &= ~SIM_SOPT_NMIE_MASK;
}
就应该可以把NMI禁止掉了 ,但是必须在KE02上电前PTB4为高电平才可以正常运行到这里,否则每次上电就直接进入中断不能正常运行程序,我在网上见到一个文章(ARM开发工具专版-如何在IAR、Keil和Codewarrior中禁止掉Kinetis的NMI脚-爱板网论坛 - 手机版 - 电子工程师学习交流园地)说可以在FOPT中把NMI 禁用了, 我的KEIL的 configuration wizard中FOPT中没内容不能展开,