野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12264|回复: 5

关于复位或断电后按键k1无法正常执行程序的问题

[复制链接]
发表于 2020-1-15 16:24:05 | 显示全部楼层 |阅读模式
程序下载后能正常进行操作(按k1进行绿灯翻转,按k2进行蓝灯翻转),但按了复位键后,k1键的功能消失无法控灯,k2键正常能翻转蓝灯,问题是我两个按键控灯都是用同样的方法,就k1有问题,对应例程是f103指南者的13-GPIO输入-按键检测。

GPIO输入按键控制灯翻转.zip

5.55 MB, 下载次数: 2

按键k1问题

回复

使用道具 举报

 楼主| 发表于 2020-1-15 16:26:18 | 显示全部楼层
[img][/img]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 16:27:17 | 显示全部楼层
C:\Users\hp\Desktop
批注 2020-01-15 162636.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 16:28:17 | 显示全部楼层
#include "bsp_key.h"
void KEY1_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK,ENABLE);
       
        GPIO_InitStruct.GPIO_Pin=KEY1_GPIO_PIN;      //端口配置
       
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;   //浮空输入模式
       
        GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStruct); //根据设定参数初始化GPIOA       
}

void KEY2_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(KEY2_GPIO_CLK,ENABLE);
       
        GPIO_InitStruct.GPIO_Pin=KEY2_GPIO_PIN;      //端口配置
       
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;   //浮空输入模式
       
        GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStruct); //根据设定参数初始化GPIOA       
}


uint8_t Key_Scan(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
        if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_OFF)
        {
                while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_OFF);
                return KEY_OFF;
        }
        else return KEY_ON;
       
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 16:28:39 | 显示全部楼层
#ifndef __BSP_KEY_H
#define __BSP_KEY_H

#include "stm32f10x.h"

#define KEY1_GPIO_PIN            GPIO_Pin_0
#define KEY2_GPIO_PIN            GPIO_Pin_13

#define KEY1_GPIO_PORT           GPIOA
#define KEY1_GPIO_CLK                                           RCC_APB2Periph_GPIOB

#define KEY2_GPIO_PORT           GPIOC
#define KEY2_GPIO_CLK                                           RCC_APB2Periph_GPIOC

#define KEY_OFF 1
#define KEY_ON  0

void KEY1_GPIO_Config(void);
void KEY2_GPIO_Config(void);
uint8_t Key_Scan(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
#endif

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-16 18:37:52 | 显示全部楼层
救救孩子把
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 22:30 , Processed in 0.073270 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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