SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD) ;
GPIODirModeSet(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|
GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_DIR_MODE_IN);
GPIOPadConfigSet(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|
GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD);
xyz549040622:
看着没问题呀,你跟踪下,是哪句进入的的FaultISR函数
shunyi zhang:
回复 xyz549040622:
HWREG(ui32Port + GPIO_O_DIR) = ((ui32PinIO & 1) ? (HWREG(ui32Port + GPIO_O_DIR) | ui8Pins) : (HWREG(ui32Port + GPIO_O_DIR) & ~(ui8Pins)));//就是这句
Michael Sun:
楼主要把所有的PD脚都配置为输入吧。PD7比较特殊需要解锁,其他脚都按照正常处理就ok。
试一下这个代码:
#include "driverlib/gpio.h"#include "inc/hw_gpio.h"
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
SysCtlDelay(5);
HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; HWREG(GPIO_PORTD_BASE + GPIO_O_CR) = 0xFF;
GPIOPinTypeGPIOInputt(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3| GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
shunyi zhang:
回复 Michael Sun:
我没有设置解锁,但是现在调试已经通过了,PD端口为什么要解锁,不解锁会出现什么问题
Michael Sun:
回复 shunyi zhang:
楼主用的哪颗芯片?
说的PD7需要解锁是针对TM4C123x。PD7、PF0和NMI功能复用的,还有JTAG功能脚都有锁,只有执行解锁才能切换GPIO的功能。
shunyi zhang:
回复 Michael Sun:
TM4C129NCPDT
xyz549040622:
回复 shunyi zhang:
最简单的说,你把配置特殊功能引脚的那几个IO屏蔽掉,看看是否正确呢,如果正确,那就是那几个的配置问题
shunyi zhang:
回复 xyz549040622:
问题已经解决了,谢谢大神
Michael Sun:
回复 shunyi zhang:
别客气,请标记一下推荐答案,这个问题可以close了。