OpenEdv-开源电子网

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

stm8s同一个io口怎么设置输出和读取输入

[复制链接]

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
发表于 2017-10-24 13:52:13 | 显示全部楼层 |阅读模式
10金钱
我要检测这6个按键是否按下,那么我按键初始化配置成推挽输出低电平,然后在检测中先把第一行置为高电平,另外两行置为低电平,请问此时我能读取到置为低电平的两行的输入吗?因为如果他们的输入由0变1就证明有键按下了。我在按键初始化的时候把三个端口设为推挽输出低电平了,请问这样也可以读到输入电平的变化吗?

读取输入

读取输入

按键初始化

按键初始化

按键检测

按键检测

原理图

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

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2017-10-24 14:23:37 | 显示全部楼层
你都是推挽输出置低电平了,就是外部有个高电平脉冲加到这引脚,也是被拉成低电平 了,所以你是检不到这个高电平脉冲的
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-24 14:32:02 | 显示全部楼层
烟酒不沾 发表于 2017-10-24 14:23
你都是推挽输出置低电平了,就是外部有个高电平脉冲加到这引脚,也是被拉成低电平 了,所以你是检不到这个 ...

那我要怎么检测 外加上拉电阻吗
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-24 14:34:38 | 显示全部楼层
liruikun 发表于 2017-10-24 14:32
那我要怎么检测 外加上拉电阻吗

要怎么配置这个IO口才能读到电平变化
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2017-10-24 15:07:59 | 显示全部楼层
用IO的开漏模式,无须切换IO方向。
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-24 15:12:45 | 显示全部楼层
Acuity 发表于 2017-10-24 15:07
用IO的开漏模式,无须切换IO方向。

哪个 开漏输出模式  stm8s  有 高速开漏输出高阻态  快速开漏输出低电平  低速开漏输出低电平
和  低速开漏输出高阻态  四种 要选择哪种
回复

使用道具 举报

10

主题

172

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1479
金钱
1479
注册时间
2016-1-25
在线时间
260 小时
发表于 2017-10-24 16:42:56 | 显示全部楼层
你可以参考我的4x4矩阵按键。
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-24 17:01:11 | 显示全部楼层
sodermalm 发表于 2017-10-24 16:42
你可以参考我的4x4矩阵按键。

矩阵的  我做过  我会了 这个更省io口
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-24 17:56:56 | 显示全部楼层
Acuity 发表于 2017-10-24 15:07
用IO的开漏模式,无须切换IO方向。

指导 一下  大佬
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2017-7-7
在线时间
42 小时
发表于 2017-10-25 10:30:13 | 显示全部楼层
你这个和SCL,SDA的用法是一样的,你可以去看下模拟I2C SCL,SDA的用法
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
 楼主| 发表于 2017-10-25 11:15:06 | 显示全部楼层
genius 发表于 2017-10-25 10:30
你这个和SCL,SDA的用法是一样的,你可以去看下模拟I2C SCL,SDA的用法

IO口设置为开漏输出,并且配置输出寄存器为高,这种情况下可以当输入用;那比如我这样,GPIO.MODE=out——od(开漏), 然后设为高 GPIO_SETBITS(), 再GPIO_READINput()这样可以读到某个IO的数据吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 14:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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