OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4839|回复: 1

求教按键实验寄存器版本

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2014-3-27
在线时间
0 小时
发表于 2014-3-27 08:56:53 | 显示全部楼层 |阅读模式
请问,我在test.C里面参照例程写的寄存器版本为何只有两个按键能按,控制两个灯同时开关的不行,stm32mini的
#include <stm32f10x.h>
#include "sys.h"
#include "delay.h"
#define KEY1 (1<<13)
#define KEY2 (1<<15)
#define KEY3 (1<<0)
#define KE1 ((GPIOA->IDR&KEY1)?1:0)    /*1??????0????*/
#define KE2 ((GPIOA->IDR&KEY2)?1:0)    /*1??????0????*/
#define KE3 ((GPIOA->IDR&KEY3)?1:0)    /*0??????1????*/
 int key_get(void)
 {

static int j=1;
if(j&&(KE3==1||KE2==0||KE1==0))
  {   j=0;delay_ms(100);
   if(KE1==0)
    {return(1);}
  else if(KE2==0)
    {return(2);}
          else if(KE3==1)
    {return(3);} 
          }
else if(KE1==1&&KE2==1&&KE3==0)
     { j=1;return(0);}
 }
 
int main(void)
 
{  
  Stm32_Clock_Init(9); 
  delay_init(72);    
            RCC->APB2ENR|=1<<2;
            RCC->APB2ENR|=1<<5;
     
            GPIOA->CRH&=0xFFFFFFF0;
            GPIOA->CRH|=0x00000003;
            GPIOA->ODR|=1<<8;
 
  GPIOD->CRL&=0xFFFFF0FF;
  GPIOD->CRL|=0x00000300;
  GPIOD->ODR|=1<<2;
  
  GPIOA->CRL&=0xFFFFFFF0;
  GPIOA->CRL|=0x00000008;
  GPIOA->CRH&=0x0F0FFFFF;
  GPIOA->CRH|=0x80800000;
  GPIOA->ODR|=1<<13;
  GPIOA->ODR|=1<<15;
while(1)
{
int t;
static int i=0,z=0,k=0;
t=key_get();
if(t)
{
switch(t)
   {
                        case 1:{i^=1;if(i==1) GPIOA->ODR&=(~(1<<8));else GPIOA->ODR|=(1<<8);} break;
case 2:{z^=1;if(z==1) GPIOD->ODR&=(~(1<<2));else GPIOD->ODR|=(1<<2);} break;
case 3:{k^=1;if(k==1) {GPIOD->ODR&=(~(1<<2));GPIOA->ODR&=(~(1<<8));} 
                                           else if(k==0) GPIOA->ODR|=(1<<8);GPIOD->ODR|=(1<<2);} break;
                  case 0: break;
                   }
        }
             }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 09:06:36 | 显示全部楼层
和原子哥的按键实验多核对核对~看哪边配置不对了
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 16:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表