前几天刚接触430吧,属于菜鸟,然后就想把各个模块过一遍,心里有个大概,然后写了一段程序:如下
#include
void main(void)
{
WDTCTL=WDTPW+WDTHOLD+WDTNMI+WDTNMIES;
//RST/NMI引脚为非屏蔽中断输入, 时钟禁止输入,计数停止
P1DIR|=BIT0;
P1OUT&=~BIT0;
IE1|=NMIIE; //非屏蔽中断允许位
_BIS_SR(LPM0_bits);
}
#pragma vector=NMI_VECTOR
__interrupt void nmi_(void)
{
volatile unsigned int i;
P1OUT|=BIT0;
for(i=20000;i>0;i--);
P1OUT&=~BIT0;
IFG1&=~NMIIFG;//清除中断标志
IE1|=NMIIE;
}
然后这段程序直接写进去直接把芯片睡死了。
当然这个睡死的概念是我自己想出来的,反正写入这个芯片后,单片机是无法工作了,主要是BSL无法写入程序,按照我的理解,这段程序写入后,没有办法复位?!
(其实只是猜测)因为不是非常了解,然后无法达到BSL烧写程序的基本要求了,导致无法写入程序,实现声明,之前所有可能导致BSL初始化失败的原因都试过了(从网上
和其他途径得到的所有的可能了,当然欢迎大家补充,我是菜鸟),连芯片也换了,写入后出现同样的问题,最后通过仿真器的JTAG端口擦除程序才恢复正常。有没有人
详细解释一下其中的关键问题所在,应该是从程序入手吧。多谢了,欢迎大家讨论讨论吧,希望向大家学习学习。谢谢。