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

配置GPIO引脚模式时为什么会进入FaultISR!!!!

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了。

赞(0)
未经允许不得转载:TI中文支持网 » 配置GPIO引脚模式时为什么会进入FaultISR!!!!
分享到: 更多 (0)