求助:PIC单片机GPIO端口初始化问题

2020-02-06 09:57发布

最近在调试PIC单片机,发现GPIO初始化函数必须放在main函数的开始,放在其他子函数中后续调用就导致部分端口初始化无效,因为涉及到上电初始化时端口输出全部为高电平会改变外围器件的状态,所以某些端口的初始化必须放在子函数中,求教如何解决。我的代码如下
  1. void GPIO_Init(void)
  2. {        //A端口
  3.         TRISA = 0x02;                       //RA1配置成模拟输入,其他A端口均配置成输出       
  4.         ADCON1bits.PCFG0 = 1;                //数字IO
  5.         ADCON1bits.PCFG1 = 0;                //模拟输入
  6.         ADCON1bits.PCFG2 = 1;                //数字IO       
  7.         ADCON1bits.PCFG3 = 1;                //数字IO

  8.         //B端口
  9.         TRISB = 0x01;                       //RB0配置成模拟输入,其他B端口均配置成输出
  10.         ADCON1bits.PCFG4 = 0;                //模拟输入
  11.         ADCON1bits.PCFG5 = 1;                //数字IO
  12.         ADCON1bits.PCFG6 = 1;                //数字IO               
  13. }
复制代码
具体来说是端口A的初始化不能放在其他子函数中,求指导!先谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。