OpenEdv-开源电子网

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

关于gpio配置为上拉输入 个别io口配置失败

[复制链接]

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2019-7-4
在线时间
37 小时
发表于 2019-9-6 15:36:00 | 显示全部楼层 |阅读模式
5金钱
#include "IOport.h"


void IOport_Init(void)
{
                GPIO_InitTypeDef GPIO_InitStructure;

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);          //使能PA,PB,PC端口时钟

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//PA8-->LED
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //PA8设置为推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                     //IO口速度为50MHz
                GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA
                GPIO_ResetBits(GPIOA,GPIO_Pin_8);

       
//阀
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽输出  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                     //IO口速度为50MHz
                GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOC
                GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);

                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽输出  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                     //IO口速度为50MHz
                GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIOC
                GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);

       
//TM1640
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5|GPIO_Pin_6;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽输出  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                     //IO口速度为50MHz
                GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB
                GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6);


//按键
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
                GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA
                GPIO_ResetBits(GPIOA,GPIO_Pin_15);
               
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_9;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
                GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB
                GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_9);
               
                GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
                GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIOC
                GPIO_ResetBits(GPIOC,GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12);
}














关于gpio的配置    上面代码只能配置PA15和PB4为上拉(电表测出电压为3.3v)   其他配置上拉失败(电压测得为0v)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2019-9-6 15:43:27 | 显示全部楼层
你自己不是reset设置了吗?
回复

使用道具 举报

3

主题

51

帖子

0

精华

高级会员

Rank: 4

积分
530
金钱
530
注册时间
2017-7-25
在线时间
188 小时
发表于 2019-9-6 15:48:42 | 显示全部楼层
1. GPIO_ResetBits 就是输出低电平
2. IO口如果是仿真口的话好像要先重映射
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-9-6 16:53:36 | 显示全部楼层
设置IO口为输入上拉,为什么后面又有一句设置IO输出为低电平?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 19:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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