[应用相关] PC13怎样设为输入方式?

[复制链接]
3301|28
 楼主| zhanglli 发表于 2014-10-31 10:24 | 显示全部楼层 |阅读模式
pc, pi, IO, GPIO, gp
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC, &GPIO_InitStructure);
PC13引脚是高电平,读入的却是0.
lium 发表于 2014-10-31 10:27 | 显示全部楼层
个人认为应该问题不是很大   呵呵   顶一个
guoyt 发表于 2014-10-31 10:30 | 显示全部楼层
GPIOC端口的时钟开启了吗
hanwe 发表于 2014-10-31 10:31 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
yufe 发表于 2014-10-31 10:33 | 显示全部楼层
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;                        //输入模式
然后看看有没有开C端口的时钟?
lium 发表于 2014-10-31 10:34 | 显示全部楼层
程序不对吧。
                 GPIO_InitTypeDef  GPIO_InitStructure;
         
        // GPIO Periph clock enable
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA
                                                                                                 |RCC_AHB1Periph_GPIOB
                                                                                                 |RCC_AHB1Periph_GPIOC
                                                                                                 |RCC_AHB1Periph_GPIOD
                                                                                                 |RCC_AHB1Periph_GPIOE, ENABLE);
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                                 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
         GPIO_Init(GPIOC, &GPIO_InitStructure);
llia 发表于 2014-10-31 10:35 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin        = GPIO_Pin_13
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        
GPIO_Init(GPIOC, &GPIO_InitStructure);
langgq 发表于 2014-10-31 10:37 | 显示全部楼层
要先开时钟 呵呵
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

 楼主| zhanglli 发表于 2014-10-31 10:37 | 显示全部楼层

时钟是开了的,但不行
wangzsa 发表于 2014-10-31 10:38 | 显示全部楼层
你检查下你的电路,这个IO管脚是否外接了上拉电阻或者下拉,根据实际情况设置管脚的输入方式
 楼主| zhanglli 发表于 2014-10-31 10:41 | 显示全部楼层

RCC_AHB1PeriphClockCmd是不能设置GPIO端口的,只有RCC_AHB2PeriphClockCmd才行,不知你用的是什么固件库
 楼主| zhanglli 发表于 2014-10-31 10:41 | 显示全部楼层
另stm32也没有GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;这样的设置项。
lium 发表于 2014-10-31 10:42 | 显示全部楼层
看看是不是设置到第二功能上了
tian111 发表于 2014-10-31 10:44 | 显示全部楼层
你是不是端口被复用了?
 楼主| zhanglli 发表于 2014-10-31 10:47 | 显示全部楼层
lium 发表于 2014-10-31 10:42
看看是不是设置到第二功能上了


应该不会的,因为我换为PA8就一点问题也没有。
tian111 发表于 2014-10-31 10:49 | 显示全部楼层
难道是芯片BUG,应该不大可能啊。
你用的什么型号,我用的F4
 楼主| zhanglli 发表于 2014-10-31 10:51 | 显示全部楼层

STM32F103,应该不会是芯片的问题,而是PC13脚有些特别,可能还是设置上的问题。
宋倩2010 发表于 2014-10-31 10:53 | 显示全部楼层

外面硬件上的连接有特别的地方么?
 楼主| zhanglli 发表于 2014-10-31 10:55 | 显示全部楼层

电路板就是火牛实验板,外面就接一个按键,PC14、PC15接一32768晶振。
gongche 发表于 2014-10-31 10:58 | 显示全部楼层

通过查询手册发现:
PC13,PC14和PC15引脚通过电源开关进行供电,因此这三个引脚作为输出引脚时有以下限制:
作为输出脚时只能工作在2MHz模式下
最大驱动负载为30pF
同一时间,三个引脚中只有一个引脚能作为输出引脚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1016

主题

9386

帖子

1

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