GD32G150 按键扫描问题

[复制链接]
 楼主| 〽️〽️〽️ 发表于 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

主题

378

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部