野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12069|回复: 3

位操作_GPIO输出和输入

[复制链接]
发表于 2016-11-7 14:09:08 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"     
#include "bsp_led.h"
#include "bsp_key.h"

#define GPIOE_ODR_Addr          (GPIOE_BASE+0x0C)
#define PEout(n)                      *(unsigned int*)((GPIOE_ODR_Addr & 0xF0000000)+0x02000000+((GPIOE_ODR_Addr & 0x00FFFFFF)<<5)+(n<<2))

#define GPIOA_IDR_Addr          (GPIOA_BASE+0x08)
#define PAin(n)                       *(unsigned int*)((GPIOA_IDR_Addr & 0xF0000000)+0x02000000+((GPIOA_IDR_Addr & 0x00FFFFFF)<<5)+(n<<2))

void Delay(uint32_t count)
{
        for( ; count!=0; count--);
}

int main(void)
{
        //来到这里的时候,系统的时钟已经被配置成72M。
        LED_GPIO_Config();
  KEY_GPIO_Config();

#if 0
       
        while(1)
        {
                //GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
                //LED_G(OFF);
                PEout(0) = 1;
                Delay(0xFFFFF);
          //GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
                //LED_G(ON);
                PEout(0) = 0;
                Delay(0xFFFFF);
        }
       
#else
       
        while(1)
        {
          if( PAin(0) == KEY_ON )
                {
                        while(PAin(0) == KEY_ON);       //KEY_0
                        LED_G_TOGGLE;                      //绿灯
                }
               
                if( PAin(1) == KEY_ON )
                {
                        while(PAin(1) == KEY_ON);      //KEY_1
                        LED_R_TOGGLE;                     //红灯
                }       
               
        }       

#endif       
}
为什么按键不能按一个就控制一个灯,而需要按了KEY_0,黄灯灭,需要再按KEY_1,才能按KEY_0,让黄灯亮


回复

使用道具 举报

发表于 2016-11-7 14:11:00 | 显示全部楼层
因为板子上的RGB彩灯由三个组成,控制显示黄色要同时点亮R 和G ,你可以用配套例程里led.h头文件里各颜色灯的控制宏,看了你就懂了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-7 16:32:38 | 显示全部楼层
flyleaf 发表于 2016-11-7 14:11
因为板子上的RGB彩灯由三个组成,控制显示黄色要同时点亮R 和G ,你可以用配套例程里led.h头文件里各颜色灯 ...

好的,谢谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-7 17:37:19 | 显示全部楼层

找到原因了,原来实验板上按了按键,端口是低电平接地,KEY_ON宏定义为0就可以了,KEY_OFF宏定义为1就可以了.
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-23 03:27 , Processed in 0.035004 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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