你好,由于公司产品开发的需要,选择了MSP430F51X2,使用msp430F5172的时候,在IO口输出方面遇到一些问题:由于设计的需要,需要用到P1,P2,P3的端口作为输出,我把相关IO口配置成输出,但发现,P1的P1.0~P.15的输入输出都正常,而P1.6,P1.7以及P2,P3都没有输出,请问这是什么原因?是这些端口的输出配置有不一样的要求吗?之前使用2系的时候没有碰到类似的问题,请指教,谢谢!
我的port设置很简单,如下
P1SEL = 0x00; //设置IO口为普通I/O模式
P1DIR = 0xff; //设置IO口方向为输出
P1OUT = 0x00; //初始设置为00
P2SEL = 0x00; //设置IO口为普通I/O模式
P2DIR = 0xff; //设置IO口方向为输出
P2OUT = 0x00; //初始设置为00
P3SEL = 0x00; //设置IO口为普通I/O模式
P3DIR = 0xff; //设置IO口方向为输出
P3OUT = 0x00; //初始设置为00
Xutong Han2:
而P1.6,P1.7以及P2,P3都没有输出 ,这里提出的没有输出具体的现象是当输出为低时IO的引脚电平不为0?还是什么问题?
penghui xia:
回复 Xutong Han2:
就用测试程序:p1,p2,p3各口输出高低电平,p1.0~p1.5高低电平变化正常,而其他端口输出一直为低
void main(void){ BSP_Init();
while(1) { P1OUT = 0xff; P2OUT = 0xff; P3OUT = 0xff; __delay_cycles(100); P1OUT = 0x0; P2OUT = 0x0; P3OUT = 0x0; __delay_cycles(100); }
}
Xutong Han2:
回复 penghui xia:
换一片单片机也一样么?是不是单片机的IO烧了?
penghui xia:
回复 Xutong Han2:
换多个都是这样的情况,可以排除是硬件的问题。而且不正常的io和正常的io(比如p1.0~p1.5和p1.6,p1.7)在datasheet上是分开来讲的,所以想问一下,端口配置上是否有区别。另外,是否与power模式,rcc等设置有关?谢谢!
Xutong Han2:
回复 penghui xia:
你那如果可以仿真的话可以打开IAR单步查看IO寄存器的内容,结合相应的设置,看看引脚电平有没有变化。
penghui xia:
回复 Xutong Han2:
查看寄存器,发现p1正常的端口P1,PIOUT寄存器相关位会置1会复位,同时P1IN的相关位也会随着置1或复位,而出问题的P2,P3口,PxOUT也会置1,但PxIN却没有变化