菜鸟求助:为什么我的IO口在初始化后都为0电平?

[复制链接]
2689|8
 楼主| yzzly 发表于 2010-8-21 17:28 | 显示全部楼层 |阅读模式
初始化:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能端口B时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);     //U6CS,U8CS开漏输出
一旦初始化语句执行后IO状态就变为0电平,使用语句
GPIO_SetBits(GPIOB,GPIO_Pin_12);
GPIO_RstBits(GPIOB,GPIO_Pin_12);
是能够正确翻转的,这是什么原因?大虾帮忙!
hgjinwei 发表于 2010-8-21 19:43 | 显示全部楼层
DR 寄存器本来就是复位清零的
eydj2008 发表于 2010-8-21 19:48 | 显示全部楼层
你配置的  GPIO_Mode_Out_OD  是开漏输出    开漏你还不明白吗? 还要看 电平?
 楼主| yzzly 发表于 2010-8-21 22:49 | 显示全部楼层
回3楼,如果开漏都不明白还在这做什么?我的信号线已经有上啦电阻了。
并且我已经说了“使用语句
GPIO_SetBits(GPIOB,GPIO_Pin_12);
GPIO_RstBits(GPIOB,GPIO_Pin_12);
是能够正确翻转的”
请看清楚问题再回答。
香水城 发表于 2010-8-22 10:55 | 显示全部楼层
DR 寄存器本来就是复位清零的
hgjinwei 发表于 2010-8-21 19:43


在配置为输出模式时,引脚的电平由DR寄存器确定,如果初始化过程中没有改变DR的内容,初始化后就会按照复位值设置引脚的电平。
 楼主| yzzly 发表于 2010-8-22 16:29 | 显示全部楼层
TO 香版,也就是说如果想在初始化后某个引脚保持为高电平,就得给DR寄存器对应位置1 ? ST这么做感觉不是很爽。
香水城 发表于 2010-8-22 22:09 | 显示全部楼层
TO 香版,也就是说如果想在初始化后某个引脚保持为高电平,就得给DR寄存器对应位置1 ? ST这么做感觉不是很爽。
yzzly 发表于 2010-8-22 16:29


ST这么做,没有感觉不爽啊,是你感觉不是很爽吧,:lol 。

你也不想想,I/O引脚初始化后,默认电平不是高就是低;你希望初始化后,默认电平是高,如果果真做成高,那些希望初始化后默认电平是低的人,就会感到不爽,你说到底应该听谁的?
 楼主| yzzly 发表于 2010-8-23 11:20 | 显示全部楼层
好,听香版的!;P
jgphu 发表于 2010-8-23 18:28 | 显示全部楼层
..........................................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

428

主题

1194

帖子

3

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