|
#include "stm32f10x.h"
#include "Delay.h"
void Delay (uint32_t nCount)
{
for(;nCount!=0;nCount--);
}
GPIO_InitTypeDef GPIO_InitStructure;
int main(void)
{
u8 ReadValue;
char a=0;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //初始化GPIOF时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9); //将GPIOF.6~9复位,关掉LED灯
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //初始化GPIOB时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1)
{
//GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10);
if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)) //发现按键KEY4被按下
{
Delay(0xfffff); //延时消斗
if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10))//再次检测按键是否仍然被按下
{
while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10));//等待按键被放开
a^=0x01;
if(a==0)
GPIO_WriteBit(GPIOC, GPIO_Pin_6, Bit_RESET);
//GPIO_ResetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
else if(a==1)
GPIO_WriteBit(GPIOC, GPIO_Pin_6, Bit_SET);
//GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
}
}
}
}
|
|