初级会员

- 积分
- 102
- 金钱
- 102
- 注册时间
- 2012-1-29
- 在线时间
- 0 小时
|

楼主 |
发表于 2012-3-31 00:47:25
|
显示全部楼层
回复【2楼】Pony279:
---------------------------------
等级:
注册时间:
2012/01/29 09:58
文章: 7
在线
int main(void)
{
NVIC_Configuration();
/* 配置LED灯使用的GPIO管脚模式*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA, ENABLE); /*使能LED灯使用的GPIO时钟*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //选择外部中断线0
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //中断线使能
EXTI_Init(&EXTI_InitStructure); //初始化中断
/* Generate software interrupt: simulate a falling edge applied on Key Button EXTI line */
EXTI_GenerateSWInterrupt(EXTI_Line0); //EXTI_Line0中断允许 到此中断配置完成,可以写中断处理函数。 使从delay函数后面开始执行
flag = 0xfeff ;
while (1)
{
GPIO_Write(GPIOB, flag);
flag<<=1;
delay(30);
if(flag == 0xEFF0)
flag = 0xFEFF;
else if(flag == 0xfffe)
flag=0xffff;
sta=0;
}
}
第一次运行时是直接从delay()后面开始的 |
|