OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7847|回复: 6

按键输入实验里面,配置了上拉输入下拉输入,但是为什么不需要设置GPIO_SetBits()和GPIO_ResetBits()

[复制链接]

5

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2017-12-23
在线时间
76 小时
发表于 2019-7-27 14:42:46 | 显示全部楼层 |阅读模式
1金钱
void KEY_Init(void)
{
       
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);

        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
       
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;//PA0
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
}
代码如上,配置了上下拉输入,不是应该执行SetBits()或者ResetBits()来设置ODR寄存器从而配置上拉还是下拉吗?在输入捕获实验里面,就是这样配置的啊,如下:
void TIM2_Cap_Init(u16 arr,u16 psc)
{         
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  
       
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);                                               

求懂的人解答!!!
       

最佳答案

查看完整内容[请看2#楼]

有设置啊,好好看教程。 ODR就是控制上下拉的,在输入摸索下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2019-7-27 14:42:47 | 显示全部楼层
Baldwin0411 发表于 2019-7-27 16:22
上下拉输入需要在ODR寄存器里面配置的,输入捕获实验里面是通过SetBits和ResetBits来配置ODR的,按键输入 ...

有设置啊,好好看教程。
ODR就是控制上下拉的,在输入摸索下。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-5-6
在线时间
9 小时
发表于 2019-7-27 15:33:09 | 显示全部楼层
记住,输入模式取决于输入,setbits和resetbits只针对于输出,例如推挽输出。
回复

使用道具 举报

5

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2017-12-23
在线时间
76 小时
 楼主| 发表于 2019-7-27 16:22:12 | 显示全部楼层
HooaJake 发表于 2019-7-27 15:33
记住,输入模式取决于输入,setbits和resetbits只针对于输出,例如推挽输出。

上下拉输入需要在ODR寄存器里面配置的,输入捕获实验里面是通过SetBits和ResetBits来配置ODR的,按键输入实验里面没有配置,我是不懂这里为什么没配置。

回复

使用道具 举报

5

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2017-12-23
在线时间
76 小时
 楼主| 发表于 2019-7-29 09:00:04 | 显示全部楼层
正点原子 发表于 2019-7-27 14:42
有设置啊,好好看教程。
ODR就是控制上下拉的,在输入摸索下。

原子哥,你是在哪里设置的,我找了好几遍都没找到,也是通过ResetBits()和SetBits()函数来设置的吗?帮忙截图看一下行不行
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-5-6
在线时间
9 小时
发表于 2019-7-29 20:34:16 | 显示全部楼层
Baldwin0411 发表于 2019-7-27 16:22
上下拉输入需要在ODR寄存器里面配置的,输入捕获实验里面是通过SetBits和ResetBits来配置ODR的,按键输入 ...

哦那我记错了,总之自己实践就知道了
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-12-28
在线时间
8 小时
发表于 2022-10-22 09:46:25 | 显示全部楼层
设置输入模式的时候就已经设好了ODR   下拉输入是0上拉输入是1
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 22:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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