初级会员

- 积分
- 174
- 金钱
- 174
- 注册时间
- 2016-9-23
- 在线时间
- 52 小时
|

楼主 |
发表于 2016-10-28 09:10:28
|
显示全部楼层
本帖最后由 silentk 于 2016-10-28 09:13 编辑
我是从那上面改过来的!IO口设置为浮空!中断线设置为边沿触发!
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource1);
EXTI_InitStructure.EXTI_Line=EXTI_Line1;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
EXTI_Init(&EXTI_InitStructure);
中断服务函数
void EXTI1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line1) != RESET)
{
delay_ms(2);
if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) == GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1))
{
LED0=0;
delay_ms(10);
LED0=1;
printf("\r\n<<<Encoder1Ïò×ó×aáËò»¸ñ\r\n");
}
else
{
LED1=0;
delay_ms(10);
LED1=1;
printf("\r\nEncoder1Ïòóò×aáËò»¸ñ>>>\r\n");
}
EXTI_ClearITPendingBit(EXTI_Line1);
}
}
现象是上电的瞬间LED0会闪一下!我想是不是上电瞬间有脉冲它直接进入了中断去判断电平了。。。
|
|