电子芯 发表于 2023-10-31 13:45:39

关于STC15无法实现独立按键扫描的问题

本帖最后由 电子芯 于 2023-10-31 13:53 编辑

电路如下,扫描按键有效店铺为低电平。到底要设置IO口为什么模式才可以。
不是说默认内部上拉了吗,通过示波器看按键波形根本不是高低电平切换,乱得很。
但是如果外接上拉电阻就OK,不是内部上拉了吗??????????


这是按键的扫描代码,P55是一颗LED灯

if(P23==0)
{
      delay_ms(250);
      P55=~P55;
      while(P23==0);
}

这是IO口初始化代码

GPIO_InitTypeDef      GPIO_InitStructure;                //结构定义
GPIO_InitStructure.Pin= GPIO_Pin_All;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作
GPIO_InitStructure.Mode = GPIO_HighZ;                //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P2,&GPIO_InitStructure);      //初始化


不管什么模式,都不能实现按键的功能。要嘛就是按键没反应,要嘛就是不按都一直有反应。
求解,感谢感谢


神农鼎 发表于 2023-10-31 19:41:25

用准双向口,
你如用高阻输入,要加上拉电阻
===否则浮空就是忽高忽低

电子DIY小家 发表于 2023-11-8 13:23:51

内部有上拉电阻,但是要通过一个寄存器打开,默认为高阻输入,浮空,状态不定。简单点的话直接配置为准双向口

电子芯 发表于 2023-11-23 18:11:58

电子DIY小家 发表于 2023-11-8 13:23
内部有上拉电阻,但是要通过一个寄存器打开,默认为高阻输入,浮空,状态不定。简单点的话直接配置为准双向 ...

是的,最后用双向口做的

jwd 发表于 2023-12-1 21:34:49

准双向口就可以了,现在一般默认是高阻
页: [1]
查看完整版本: 关于STC15无法实现独立按键扫描的问题