关于GPIO口复用设置问题。!

2019-07-20 21:44发布

比如说把 PA2 PA3 复用为串口2,教程上给的是这段代码:
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
               
        GPIO_Init(GPIOA, &GPIO_InitStructure);

这样设置感觉不太正确诶,因为两个IO口都设置成为了 输出,不是应该一个输入一个输出吗?
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF|GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
                GPIO_Init(GPIOA, &GPIO_InitStructure);



     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF|GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
               
        GPIO_Init(GPIOA, &GPIO_InitStructure);

上面这样设置对吗?
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF&GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
                GPIO_Init(GPIOA, &GPIO_InitStructure);



       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF&GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
               
        GPIO_Init(GPIOA, &GPIO_InitStructure);


这样呢???                    望大神给指点迷惑!!!              STM32F10都是分开设置的,感觉很合理。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。