//============================
//主程序
//led-> PA8
//===========================
#include "stm32f10x.h"
#include "key.h"
#include "led.h"
//===========================
int main(void)
{
LED_GPIO_Config();
KEY_GPIO_Config();
while(1)
{
if( Key_Sacn() == 1 )
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
}
else GPIO_SetBits(GPIOA,GPIO_Pin_8);
}
}
//============================
//key.c
//=============================
/*按键驱动程序*/
/*KEY1 -> PC13 低电平有效*/
//======================
#include "key.h"
//=================================================================
void KEY_GPIO_Config(void)
{
/* 定义GPIO初始化结构体 */
GPIO_InitTypeDef GPIO_InitStruct;
/*打开外设时钟*/
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC , ENABLE);
/* 配置GIPO相关外设结构体 */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
GPIO_Init(GPIOC,&GPIO_InitStruct); //GPIOC 初始化
}
//===============================================================
int Key_Sacn()
{
static int num = 0;
if(key == 0)
{
while(key == 0);
num++;
}
if(num!=0&&num%2==1) return 1;
else return 0;
}
//led程序没有问题,请问我的按键 检测程序有问题吗, |