4898|4

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

矩阵键盘问题,搞不定 [复制链接]

一个简单的2*8矩阵键盘如图,折腾了一天没搞定,各位有什么建议。
我是如下配置的:
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);  
  
  //PC0-PC7,地址、通讯
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | \
          GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  //上拉输入
  GPIO_Init(GPIOC, &GPIO_InitStructure);

//读出开关组1状态
  
GPIO_SetBits(GPIOC, GPIO_Pin_8);
GPIO_ResetBits(GPIOC, GPIO_Pin_9);
DelayMs(10);
temp= (u8)GPIO_ReadInputData(GPIOC);
//读出开关组2状态
GPIO_ResetBits(GPIOC, GPIO_Pin_8);
GPIO_SetBits(GPIOC, GPIO_Pin_9);
DelayMs(10);

id = (u8)GPIO_ReadInputData(GPIOC) ;

将输入脚全部外部上拉后,只能正确读出一组开关的状态,当另一组开关中的任一个打开后,读出全部为闭合。

ID.jpg (65.67 KB)

ID.jpg

此帖出自stm32/stm8论坛

最新回复

要是有原理图就好了  详情 回复 发表于 2011-9-3 15:37
点赞 关注
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 没人用过吗?我只是在需要的时候去读一次开关状态。
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

不能设置成推挽输出,因为如S1的开关1,S2的开关1,都闭合后,不管8/9脚怎么设置,实际是连起来的,只有一个状态,谁的驱动能力强就是那个电平
设置成开路输出
此帖出自stm32/stm8论坛
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
发现还是硬件设计有问题,多个开关同时开的时候,不可能正确检测。

要改硬件设计。
此帖出自stm32/stm8论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

5
 
要是有原理图就好了
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表