高级会员
- 积分
- 895
- 金钱
- 895
- 注册时间
- 2012-6-29
- 在线时间
- 37 小时
|
1金钱
本帖最后由 catbal 于 2016-11-27 00:41 编辑
我使用PC2口设为有中断上拉输入后 为啥检测不到低电平 我通过灯来判断 C2 接按键
void key_Init(void)
{
//key
GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_IN_PU_IT);
//GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_IN_PU_NO_IT);
//wifi_staus_led
GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_FAST);
EXTI_DeInit();
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);
}
void mian()
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
key_Init();
while(1)
{
if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0)
GPIO_WriteHigh(GPIOD, GPIO_PIN_2);
else
GPIO_WriteLow(GPIOD, GPIO_PIN_2);
}
#pragma vector=7
__interrupt void EXTI_PORTC_IRQHandler(void)
{
TIM1_Cmd(ENABLE);
key_time1=0;
Delay_ms(10000);
Delay_ms(10000);
if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0)
{
if(key_flag==1&&key_time<50)
key_flag=2;
else
key_flag=1;
Delay_ms(10000);
Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
if((GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0))
{
key_flag=3;
}
Delay_ms(10000);
}
}
}
|
|