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

PD7解锁时产生fault interrupt,并且进入FaultISR(void){}函数中的死循环。

       

HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;//解锁HWREG(GPIO_PORTD_BASE + GPIO_O_CR) |= 0x80;//确认HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = 0;//重新锁定

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);GPIODirModeSet(GPIO_PORTD_BASE, GPIO_PIN_6 | GPIO_PIN_7, GPIO_DIR_MODE_IN);GPIOPadConfigSet(GPIO_PORTD_BASE, GPIO_PIN_6 | GPIO_PIN_7, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

如上程序,当执行到第二行的时候程序产生fault interrupt,并且进入FaultISR(void){}函数中的死循环,一直找不到原因和解决办法,希望能得到帮助,谢谢!

另外“AY-MSE-Kit_例程_For_Tiva LP”中".\Code_pro\CH3\CH3_1_LCD"中的例程对PD7的解锁代码为:

	HWREG(GPIO_PORTD_BASE+GPIO_O_LOCK)  |= GPIO_LOCK_KEY;

	HWREG(GPIO_PORTD_BASE+GPIO_O_CR)|= (1<<7);

	HWREG(GPIO_PORTD_BASE+GPIO_O_DEN)  &=(~(1<<7));

	HWREG(GPIO_PORTD_BASE+GPIO_O_PDR)  &= (~(1<<7));

	HWREG(GPIO_PORTD_BASE+GPIO_O_PUR)  &= (~(1<<7));

	HWREG(GPIO_PORTD_BASE+GPIO_O_AFSEL) &=(~(1<<7));

上面是不是有差错,第一行应该直接赋值解锁,但还是一直都调不出来,同样会引发fault interrupt。

xyz549040622:

是不是系统主频的设置问题呢,你加个延时看看。这个解锁的代码是正确的。

赞(0)
未经允许不得转载:TI中文支持网 » PD7解锁时产生fault interrupt,并且进入FaultISR(void){}函数中的死循环。
分享到: 更多 (0)