PB7也就是LM3S9B96的第89管脚,数据手册中说可以作为GPIO用,也可以作为NMI,但是我将其配置为GPIO输入后,给它一个高电平,在程序中采集到的却是低电平(进入调试模式后发现的);将其设置为GPIO输出后,程序中设定为输出高电平,但是在管脚上测量得到的电压却是低电平,也就是说程序中设定的没有作用,试了其他几个管脚都可以的,单单此管脚有问题(偏偏该管脚还是我的板子中必须要用到的一个),不知道什么原因造成的。
刚开始怀疑是管脚虚焊,但是检查了没有问题;怀疑是芯片本身有问题,后来拿第二块电路板试了一下还是不行,原因仍然不能查出。
是该管脚根本就不能作为GPIO来使用呢,还是我的这批芯片有问题呢?我的LM3S9B96是C3版本的,看了勘误手册也没有发现此管脚有bug啊,究竟是怎么回事呢,各位有没有遇到过此类问题,手中有开发板的可否自己测试一下,然后告诉我呢,在线急等。
此帖出自
小平头技术问答
和其它 GPIO 相比需要修改什么模式?
我在用M4的时候也遇到这样的问题。我解决了这个问题。
其实该GPIO口默认为NMI功能,所以在用的时候需要将其配置为GPIO即可。具体参考ds资料,
我是根据资料,直接操作寄存器的。
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD; //解除锁定
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x80;
// Make PB7 an input.
GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_DIR_MODE_IN);
GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_STRENGTH_8MA,
GPIO_PIN_TYPE_STD);
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x00;
一周热门 更多>