本帖最后由 又偷懒了 于 2019-10-31 17:26 编辑
file:///C:/Users/12823/Desktop/%E6%97%A0%E6%A0%87%E9%A2%98.png
#define KEY_ON 0#define KEY_OFF 1
int gpioa0_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
int gpioc13_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
uint8_t key_scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==KEY_ON)
{
delay_ms(10);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==KEY_ON)
{
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==KEY_ON)
return KEY_ON;
}
else
return KEY_OFF;
}
else
return KEY_OFF;
}
int main(void)
{
delay_init(72);
gpioa0_init();
gpioc13_init();
while(1)
{
if(key_scan(GPIOA,GPIO_Pin_0)==KEY_ON)
{
PCout(13)=~PCin(13);
}
}
}
|