求助:PIC单片机GPIO端口初始化问题
最近在调试PIC单片机,发现GPIO初始化函数必须放在main函数的开始,放在其他子函数中后续调用就导致部分端口初始化无效,因为涉及到上电初始化时端口输出全部为高电平会改变外围器件的状态,所以某些端口的初始化必须放在子函数中,求教如何解决。我的代码如下void GPIO_Init(void){ //A端口
TRISA = 0x02; //RA1配置成模拟输入,其他A端口均配置成输出
ADCON1bits.PCFG0 = 1; //数字IO
ADCON1bits.PCFG1 = 0; //模拟输入
ADCON1bits.PCFG2 = 1; //数字IO
ADCON1bits.PCFG3 = 1; //数字IO
//B端口
TRISB = 0x01; //RB0配置成模拟输入,其他B端口均配置成输出
ADCON1bits.PCFG4 = 0; //模拟输入
ADCON1bits.PCFG5 = 1; //数字IO
ADCON1bits.PCFG6 = 1; //数字IO
}
具体来说是端口A的初始化不能放在其他子函数中,求指导!先谢谢了 楼主的意思是:在子函数中改变 A端口的 “模拟”与“数字”状态? 用函数指针可以吗? 你用的单片机有没有这个:ANSELx 寄存器 d314361768 发表于 2017-3-22 22:02
楼主的意思是:在子函数中改变 A端口的 “模拟”与“数字”状态?
是的,在子函数中改变端口A的模拟与数字状态无效,端口B就可以,你知道是什么情况吗 河图洛书 发表于 2017-3-23 08:21
用函数指针可以吗?
不太明白,这个跟函数指针有什么关系 #define LineInputGP1
#define Output GP2
#define Diminput GP4 #define LineInputGP1
#define Output GP2
#define Diminput GP4
页:
[1]