初学者遇上按键问题

2019-07-20 21:18发布

本帖最后由 xuande 于 2016-7-13 15:23 编辑

准备写一个简单的按键函数,按键以后蜂鸣器开始闪烁,现在库函数成功,位带成功, 但是卡在寄存器了,函数如下
while(1)
{
    if(WK_UP==1)  
   {
      delay_ms(10);
      if(WK_UP==1)
   {   
    //GPIO_SetBits(GPIOF,GPIO_Pin_8);
   GPIOF->ODR|=1<<8;
   delay_ms(500);
   GPIOF->ODR&=~(1<<8);
   delay_ms(500);
     }
   }
}

RCC->AHB1ENR=1<<5;
GPIOF->MODER&=~(3<<8*2);
GPIOF->MODER|=1<<8*2;

GPIOF->OSPEEDR&=~(3<<8*2);
GPIOF->OSPEEDR|=3<<8*2;

GPIOF->OTYPER&=~(1<<8);
GPIOF->OTYPER|=0<<8;

GPIOF->PUPDR&=~(3<<8*2);
GPIOF->PUPDR|=2<<8*2;

GPIOF->ODR&=~(1<<8);
GPIOF->ODR|=0<<8;

按键无反应,把死循环中WK_UP的值改为0,便可以直接开始响了,说明还是在判断条件的,不明白什么问题,好像按键不工作额, 请朋友们解答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
xuande
1楼-- · 2019-07-21 00:04
 精彩回答 2  元偷偷看……
天空淡云
2楼-- · 2019-07-21 05:59
按键应该操作IDR寄存器,不是ODR寄存器
赵治羽
3楼-- · 2019-07-21 11:21
 精彩回答 2  元偷偷看……
赵治羽
4楼-- · 2019-07-21 13:03
xuande 发表于 2016-7-13 15:23
有没有用仿真器走过?

我现在对STLINK还不怎么会用,也就明白怎么下程序,监测寄存器的值什么的操作还不造是个啥玩意儿
天空淡云
5楼-- · 2019-07-21 13:59
赵治羽 发表于 2016-7-13 17:31
我贴出来的代码是beep的不是按键的。 按键我用库函数写的

蜂鸣器你操作BSRR来控制电平试试,还有,你把按键代码发出来看看啊
方圆几里
6楼-- · 2019-07-21 15:34
 精彩回答 2  元偷偷看……

一周热门 更多>