打印
[STM8]

STM8S 奇怪的现象 PB5口 做微动开关 按键输入 SET 不能循环

[复制链接]
2062|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aerwa|  楼主 | 2014-4-10 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PB5 口位做的微动开关按键输入, 初始化配置是浮动输入上拉无中断,  按键接了10K 上拉电阻,  可以扫描到按键。 但是在调试的时候有句语句执行不了, 直接跳过。


void scan_fuction(void)//扫描按键
{
BitStatus bit_status = GPIO_ReadInputPin(GPIOB, GPIO_PIN_5);
if (bit_status == RESET)  //SET or RESET
{
      Soft_DelayMs(30);//延时
      clear_WWDG();
      BitStatus bit_status = GPIO_ReadInputPin(GPIOB, GPIO_PIN_5);
         if (bit_status == RESET)
         {  
         
           ModeF_k++;
             Soft_DelayMs(30);
             sound();
             clear_WWDG();            
               if( ModeF_k>8)
                   {
                    ModeF_k=0;
                   }                     
         //      while(!GPIO_ReadInputPin(GPIOB, GPIO_PIN_5));               
             while (bit_status == SET )
                {
                   clear_WWDG();
                   BitStatus bit_status = GPIO_ReadInputPin(GPIOB, GPIO_PIN_5);
                }  
                              
         }
         else            
         clear_WWDG();  
}  
}
  大家请看, 是红色 while 语句在==SET 的时候不能正确执行不能进入循环, ==RESET的时候可以正确跑到循环里, 我用蓝色语句代替 可以检测到按键出高才跳出, 但是中间插入不了  clear_WWDG(); 。
请大家帮忙分析。 谢谢。
PB5 口位的 1,0 变化能在 PB_IDR 里正确看到, 仿真的时候,但是就是==SET 的时候不能。


沙发
FAQ| | 2014-4-10 20:18 | 只看该作者
哥们你中招了吧,PB5这个是纯开漏口。没有内部上拉功能。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
aerwa + 3
板凳
aerwa|  楼主 | 2014-4-10 20:48 | 只看该作者
是啊, 没有内部上拉我就加了个上拉10K 电阻给它,  我供电是5V的,可以有5V 0V的变化,  问题是为什么编译的时候while == SET 不能识别啊,while(!GPIO_ReadInputPin(GPIOB, GPIO_PIN_5));   这句话可以代替,  如果用这句 按键可以正常操作。
但是我中间插不了清除看门狗的。  

使用特权

评论回复
地板
hithms| | 2014-4-11 08:54 | 只看该作者
红色语句不能进入就对了。按照你的意思,按键按下时对应的IO应该是低电平,低电平当然进不了红色部分的循环里。

使用特权

评论回复
5
wookongbun| | 2014-4-11 08:56 | 只看该作者
while (bit_status == SET )
{
    clear_WWDG();
    BitStatus bit_status = GPIO_ReadInputPin(GPIOB, GPIO_PIN_5);
}

while 语句里面的 bit_status 和 下面花括号里面的 bit_status 不是同一变量。他们之间的作用域不一样。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
aerwa + 3
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

587

帖子

8

粉丝