打印

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

[复制链接]
2066|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);
是能够正确翻转的”
请看清楚问题再回答。

使用特权

评论回复
5
香水城| | 2010-8-22 10:55 | 只看该作者
DR 寄存器本来就是复位清零的
hgjinwei 发表于 2010-8-21 19:43


在配置为输出模式时,引脚的电平由DR寄存器确定,如果初始化过程中没有改变DR的内容,初始化后就会按照复位值设置引脚的电平。

使用特权

评论回复
6
yzzly|  楼主 | 2010-8-22 16:29 | 只看该作者
TO 香版,也就是说如果想在初始化后某个引脚保持为高电平,就得给DR寄存器对应位置1 ? ST这么做感觉不是很爽。

使用特权

评论回复
7
香水城| | 2010-8-22 22:09 | 只看该作者
TO 香版,也就是说如果想在初始化后某个引脚保持为高电平,就得给DR寄存器对应位置1 ? ST这么做感觉不是很爽。
yzzly 发表于 2010-8-22 16:29


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

你也不想想,I/O引脚初始化后,默认电平不是高就是低;你希望初始化后,默认电平是高,如果果真做成高,那些希望初始化后默认电平是低的人,就会感到不爽,你说到底应该听谁的?

使用特权

评论回复
8
yzzly|  楼主 | 2010-8-23 11:20 | 只看该作者
好,听香版的!;P

使用特权

评论回复
9
jgphu| | 2010-8-23 18:28 | 只看该作者
..........................................

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

427

主题

1178

帖子

3

粉丝