[STM32F0] GPIO读取异常

[复制链接]
2975|11
 楼主| yiwang1011 发表于 2015-1-27 09:18 | 显示全部楼层 |阅读模式
本人在使用STM32031G4的过程中,碰到一个奇怪现象,IO口读出来的状态与IO口实际的状态不相符。也就是说:IO口用万用表去量测电平是3.3V的情况下,IDR读取对应的bit位为0。以下是本人的GPIO的初始化及使用部分。如有碰到类似情况的大神,还请指点问题出在哪。

*****************************初始化**********************************************      
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7|GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB,&GPIO_InitStructure);
         
  GPIO_ResetBits(GPIOB,GPIO_Pin_3);


*******************************使用部分*******************************************

    GPIO_ResetBits(GPIOB,GPIO_Pin_6);
    DelayTime(COUNT_SCL);

    GPIO_SetBits(GPIOB,GPIO_Pin_7);
    DelayTime(COUNT);
    GPIO_SetBits(GPIOB,GPIO_Pin_6);
    DelayTime(COUNT);

    while (err_time--)
    {                                
         GPIOB->MODER&=0xFFFF3FFF;
        if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7) == 0)          //在此时,PIN7外部量侧是高电平,但是程序读出来是低电平.  
        {
            GPIO_ResetBits(GPIOB,GPIO_Pin_6);
            GPIOB->MODER|=0x00004000;
            return true;
        }
}
ar_m_cu 发表于 2015-1-27 09:42 | 显示全部楼层
把 pin7 初始化成输入
 楼主| yiwang1011 发表于 2015-1-27 09:54 | 显示全部楼层
ar_m_cu 发表于 2015-1-27 09:42
把 pin7 初始化成输入

试过了,无影响。而且datasheet上描述的是不用设置成输入也能读取的。
ar_m_cu 发表于 2015-1-27 10:22 | 显示全部楼层
不用开漏试试没
mmuuss586 发表于 2015-1-27 12:08 | 显示全部楼层

设置成输入模式;
031没用过,030我在用,一样的;
 楼主| yiwang1011 发表于 2015-1-27 13:45 | 显示全部楼层
ar_m_cu 发表于 2015-1-27 10:22
不用开漏试试没

这个IO是当模拟IIC在用,外部有上拉电阻的。
 楼主| yiwang1011 发表于 2015-1-27 13:46 | 显示全部楼层
mmuuss586 发表于 2015-1-27 12:08
设置成输入模式;
031没用过,030我在用,一样的;

你所说的一样是指一样异常?
zqjqq88 发表于 2015-1-27 15:19 | 显示全部楼层
GPIO的时钟没打开吧~
 楼主| yiwang1011 发表于 2015-1-27 16:49 | 显示全部楼层
zqjqq88 发表于 2015-1-27 15:19
GPIO的时钟没打开吧~

打开了。
fg888fg888 发表于 2015-1-27 18:37 | 显示全部楼层
你确定设置的为数字输入?如果上面提问的都没有问题,还有一种可能就是这个单片机的的IO口坏掉了,更换管脚试一下
 楼主| yiwang1011 发表于 2015-1-27 19:36 | 显示全部楼层
fg888fg888 发表于 2015-1-27 18:37
你确定设置的为数字输入?如果上面提问的都没有问题,还有一种可能就是这个单片机的的IO口坏掉了,更换管脚 ...

确定上面提问的都没有问题。在手里所有的打样PCBA上都有同样的情况。
随性自然vollo 发表于 2018-10-22 11:44 | 显示全部楼层
yiwang1011 发表于 2015-1-27 09:54
试过了,无影响。而且datasheet上描述的是不用设置成输入也能读取的。

请问,问题解决了吗?什么原因呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

70

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部