硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4135|回复: 1
收起左侧

[有问必答] 初始化某一个GPIO引脚会修改别的引脚

[复制链接]

3

主题

13

回帖

22

积分

新手上路

积分
22
发表于 2018-8-21 09:50:27 | 显示全部楼层 |阅读模式
本帖最后由 tianyukobe 于 2018-8-21 09:52 编辑

其中PD10 和 PD11需要配置成模拟I2C接口配置如下/*
* @brief        IOI2C port and pin init
*/
void IIC_Init(void)
{                        
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(IOI2C_PORT_CLK, ENABLE);

        //SCL and SDA pin
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        
        //PORT init
        GPIO_InitStructure.GPIO_Pin = IOI2C_SCL_PIN;
        GPIO_Init(IOI2C_SCL_PORT, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = IOI2C_SDA_PIN;
        GPIO_Init(IOI2C_SDA_PORT, &GPIO_InitStructure);
}


其中PD9需要配置成SPI接口的CS引脚,配置如下
/**
* initialize MS5611 CS pin
*/
void ms5611_init_CS(void)
{
        GPIO_InitTypeDef   GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);


        /////GPIOD: GPIO_Pin_9->MS5611_cs;
        GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);
        delay_ms(1);
        ms5611_disabled();
}

其中未进行GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
调试过程发现当GPIO_Init执行时结果如下,GPIOD_OTYPER   10 11 13 被修改由推挽输出变成输出开漏


初始化时添加GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 执行GPIO_Init初始化 则不会被修改

初始化流程顺序
IIC_Init();
ms5611_init_CS

不解一:我看了手册GPIO_OType_PP默认值是00,即使我不初始化应该也00
不解二:在没有做GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  为啥会异常修改其他GPIO配置值



回复

使用道具 举报

3

主题

13

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2018-8-21 10:11:17 | 显示全部楼层
原因:GPIO_InitTypeDef   GPIO_InitStructure;是局部变量,不初始化状态,所有是数值都是随机的,可能被修改,所以还是别偷懒了,该写的都写了,这些小的细节可能会导致一个工程瘫痪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 16:36 , Processed in 0.035197 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表