硬汉嵌入式论坛

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

[有问必答] 初学STM32:GPIOD->IDR没有随输入改变

[复制链接]

13

主题

16

回帖

55

积分

初级会员

积分
55
发表于 2017-9-18 08:04:54 | 显示全部楼层 |阅读模式
设置了GPIOD GPIO_Pin_12为上拉输入,
配置前已经使能了时钟:   


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,ENABLE);
/**************************PD口配置***********************************************/
    GPIO_SetBits(GPIOD,GPIO_Pin_13);        /*启动时,LED left点亮 */

/*PD端口配置--输出部分*/   
    GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_13);
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOD,&GPIO_InitStructure);



/*PD端口配置--输入部分*/
    GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12);    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;    GPIO_Init(GPIOD,&GPIO_InitStructure);   
//测试代码

    temp=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_12);
仿真时能看到配置已经成功,此时GPIO_Pin_12引脚是接地的,但是GPIOD->IDR的相应位没有改变。不知道我是不是有什么地方没有考虑到?

GPIOD->IDR

GPIOD->IDR

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107011
QQ
发表于 2017-9-18 08:58:33 | 显示全部楼层
配置可以的,确认是否已经接地,电压表测量下,另外就是主程序里面一直读取看看。
回复

使用道具 举报

13

主题

16

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2017-9-18 09:24:01 | 显示全部楼层

回 eric2013 的帖子

eric2013:配置可以的,确认是否已经接地,电压表测量下,另外就是主程序里面一直读取看看。 (2017-09-18 08:58) 
谢谢,
断点设在主程序里,还是没有变为零;所以初始化结束就做了一下测试,也是1
我再查一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 09:17 , Processed in 0.351792 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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