野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14109|回复: 7

检测IO口高低电平,控制LED灯点亮

[复制链接]
发表于 2018-6-13 14:33:04 | 显示全部楼层 |阅读模式
请教什么问题!??

#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_key.h"


void Delay(uint32_t Count)
  {
        for(; Count != 0; Count--);
  }
int main(void)
{       
        /* LED ¶Ë¿ú3õê¼»ˉ */
        LED_GPIO_Config();         
        Key_GPIO_Config();

        while (1)
        {
                                if( GPIO_ReadInputDataBit(KEY1_GPIO_PORT,KEY1_GPIO_PIN        ) == 1 )
                {
                        GPIO_ResetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);
                }
      else  {GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);}
回复

使用道具 举报

 楼主| 发表于 2018-6-13 14:34:37 | 显示全部楼层
#include "./key/bsp_key.h"  

void Key_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        /*¿aÆô°′¼ü¶Ë¿úμÄê±Öó*/
        RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK|KEY2_GPIO_CLK,ENABLE);
       
        //Ñ¡Ôñ°′¼üμÄòy½Å
        GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;
        // éèÖð′¼üμÄòy½ÅÎa¸¡¿Õêäèë
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        //ê1óýá11ìå3õê¼»ˉ°′¼ü
        GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
       
        //Ñ¡Ôñ°′¼üμÄòy½Å
        GPIO_InitStructure.GPIO_Pin = KEY2_GPIO_PIN;
        //éèÖð′¼üμÄòy½ÅÎa¸¡¿Õêäèë
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        //ê1óýá11ìå3õê¼»ˉ°′¼ü
        GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);       
       
       
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-13 14:35:06 | 显示全部楼层
#ifndef __KEY_H
#define        __KEY_H


#include "stm32f10x.h"

//  òy½Å¶¨òå
#define    KEY1_GPIO_CLK     RCC_APB2Periph_GPIOA
#define    KEY1_GPIO_PORT    GPIOA                          
#define    KEY1_GPIO_PIN                 GPIO_Pin_7

#define    KEY2_GPIO_CLK     RCC_APB2Periph_GPIOD
#define    KEY2_GPIO_PORT    GPIOD                  
#define    KEY2_GPIO_PIN                  GPIO_Pin_15


/** °′¼ü°′ϱêÖÃoê
        *  °′¼ü°′ÏÂÎa¸ßμçÆ½£¬éèÖà KEY_ON=1£¬ KEY_OFF=0
        *  èô°′¼ü°′ÏÂÎaμíμçÆ½£¬°ÑoêéèÖÃ3éKEY_ON=0 £¬KEY_OFF=1 ¼′¿é
        */
#define KEY_ON             1
#define KEY_OFF           0

void Key_GPIO_Config(void);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);


#endif /* __KEY_H */
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-13 14:35:44 | 显示全部楼层
#include "bsp_led.h"   

void LED_GPIO_Config(void)
{               
                /*¶¨òåò»¸öGPIO_InitTypeDefààDíμĽá11ìå*/
                GPIO_InitTypeDef GPIO_InitStructure;

                /*¿aÆôLEDÏà1ØμÄGPIOíaéèê±Öó*/
                RCC_APB2PeriphClockCmd( LED1_GPIO_CLK , ENABLE);
                /*Ñ¡Ôñòa¿ØÖÆμÄGPIOòy½Å*/
                GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;       

                /*éèÖÃòy½ÅÄ£ê½Îaí¨óÃíÆíìêä3ö*/
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

                /*éèÖÃòy½ÅËùÂêÎa50MHz */   
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

                /*μ÷óÿaoˉêy£¬3õê¼»ˉGPIO*/
                GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);       
       
                /* ĬèÏ1رÕled1μÆ        */
                GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);
       
}
/*********************************************END OF FILE**********************/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-13 14:36:09 | 显示全部楼层
#ifndef __LED_H
#define        __LED_H


#include "stm32f10x.h"

#define LED1_GPIO_PORT            GPIOB                                      /* GPIO¶Ë¿ú */
#define LED1_GPIO_CLK             RCC_APB2Periph_GPIOB                /* GPIO¶Ë¿úê±Öó */
#define LED1_GPIO_PIN                GPIO_Pin_9                                /* ᬽóμ½SCLê±ÖóÏßμÄGPIO */


//#define ON    0
//#define OFF  1

//#define  LED1(a)   if(a) \
//                     GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);\
//               GPIO_ResetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);               


void LED_GPIO_Config(void);

#endif /* __LED_H */
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-13 14:39:22 | 显示全部楼层
本帖最后由 lv378559368 于 2018-6-13 14:44 编辑

情况如附件,请各大神帮忙看看

点亮LED灯.rar

4.25 MB, 下载次数: 21

回复 支持 反对

使用道具 举报

发表于 2018-6-13 14:54:30 | 显示全部楼层
直接对照野火的按键例程就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-13 16:14:12 | 显示全部楼层
笑你像狗 发表于 2018-6-13 14:54
直接对照野火的按键例程就好了

按键没问题噢,开关不行呢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 00:49 , Processed in 0.046248 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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