打印

GD32G150 按键扫描问题

[复制链接]
506|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
〽️〽️〽️|  楼主 | 2020-12-19 00:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
扫描第一按键
SET_SCAN1_HI();     //IO输出高
SET_SCAN2_LO();    //IO输出低
SET_SCAN3_LO();    //IO输出低
SET_SCAN4_LO();    //IO输出低
for(uint16_t i=0;i<50;i++){;}  //wait min=50 这里为什么要必须大于等于50才正确呢?
t_mac[0]=GET_ADDR0_IN0();  //IO读取值
t_mac[1]=GET_ADDR1_IN1();  //IO读取值
扫描第二按键
SET_SCAN1_LO();     //IO输出低
SET_SCAN2_HI();    //IO输出高
SET_SCAN3_LO();    //IO输出低
SET_SCAN4_LO();    //IO输出低
for(uint16_t i=0;i<50;i++){;}  //wait min=50 这里为什么要必须等50才正确呢?
t_mac[2]=GET_ADDR0_IN0();  //IO读取值
t_mac[3]=GET_ADDR1_IN1();  //IO读取值


通过二极管返回高电平, 输入GET_ADDR0_IN0和IN1是下拉输入,这个延时不加的话 就不能保证后面正确读值(这里实际是电阻长短接,和按键闭合一个意思)

使用特权

评论回复
沙发
〽️〽️〽️|  楼主 | 2020-12-25 09:55 | 只看该作者

使用特权

评论回复
板凳
ayb_ice| | 2020-12-29 15:19 | 只看该作者
太快了,GPIO电平值还没转换过来

使用特权

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

本版积分规则

51

主题

377

帖子

2

粉丝