打印
[STM8]

新手问一下简单的问题,关于GPIO

[复制链接]
1229|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hcbj2003|  楼主 | 2017-12-8 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

STM8S103F3P6  IO口 D4 , 我现在要用一个引脚驱动继电器,高电平有效.
GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_PP_HIGH_SLOW);

我程序现在是可以正常操作这个引脚的,可是我发现,设备一上电,一执行初始化这个语句,
这个引脚默认就是高电平.我的继电器就会动作,虽然我可以在之后把它设成低电平, 但是刚上电还是会跳一些

有没有一设置就是默认低电平啊,

我看好多设置IO脚初始化完后默认就是低电平,为什么我的不是?

我把这个引脚直接接电阻再接个LED,再接地,默认就是亮的.
除非初始化完以后,我程序置低.
沙发
fengfeng的恒| | 2017-12-8 13:47 | 只看该作者
首先,这个语句是把PD4这个IO口设置为推挽输出,同时输出高电平。
你需要把这句初始化换为GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_SLOW);即可。这样就是输出低电平了。
到你需要驱动的时候,再设置为高即可。用这个GPIO_WriteHigh(GPIOD, GPIO_PIN_4);
关闭:GPIO_WriteLow(GPIOD, GPIO_PIN_4)

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
hcbj2003 + 1 说到根上了,搞定了.
板凳
mmuuss586| | 2017-12-8 13:55 | 只看该作者
参考楼上意见,并接个下拉电阻看看;

使用特权

评论回复
地板
hcbj2003|  楼主 | 2017-12-8 14:34 | 只看该作者
fengfeng的恒 发表于 2017-12-8 13:47
首先,这个语句是把PD4这个IO口设置为推挽输出,同时输出高电平。
你需要把这句初始化换为GPIO_Init(GPIOD, ...

我去,问了一帮人,都没回到点子啊,唉,
新手就是新手,
高人就是高人,
经过你一点拨,搞定,终于知道这个参数是什么意思了,
谢谢!,谢谢!!!!
GPIO_MODE_OUT_PP_LOW_SLOW
GPIO_MODE_OUT_PP_HIGH_SLOW

使用特权

评论回复
5
caijie001| | 2017-12-8 20:27 | 只看该作者
一楼

使用特权

评论回复
6
hudi008| | 2017-12-8 22:40 | 只看该作者
可以使用上拉电阻或者下拉电阻。

使用特权

评论回复
7
lzmm| | 2017-12-8 22:41 | 只看该作者
可以使用三极管进行反向。

使用特权

评论回复
8
minzisc| | 2017-12-8 22:41 | 只看该作者
hcbj2003 发表于 2017-12-8 14:34
我去,问了一帮人,都没回到点子啊,唉,
新手就是新手,
高人就是高人,

使用特权

评论回复
9
selongli| | 2017-12-8 22:42 | 只看该作者
fengfeng的恒 发表于 2017-12-8 13:47
首先,这个语句是把PD4这个IO口设置为推挽输出,同时输出高电平。
你需要把这句初始化换为GPIO_Init(GPIOD, ...

跟着学习一下。

使用特权

评论回复
10
hudi008| | 2017-12-8 22:42 | 只看该作者
初始化完成电平不确定。

使用特权

评论回复
11
lzmm| | 2017-12-8 22:42 | 只看该作者
电平信号不确定而已。

使用特权

评论回复
12
minzisc| | 2017-12-8 22:42 | 只看该作者
hcbj2003 发表于 2017-12-8 14:34
我去,问了一帮人,都没回到点子啊,唉,
新手就是新手,
高人就是高人,

长见识了。

使用特权

评论回复
13
selongli| | 2017-12-8 22:42 | 只看该作者
以前驱动继电器都是有驱动电路,没有碰上这个问题过。

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝