打印

为什么这样做LED不能翻转

[复制链接]
535|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LED, IO, pi, gp, GPIO

#include "stm32f10x.h"



uint8_t flag=0;



void EXTI_Config(void)

{

        GPIO_InitTypeDef        GPIO_InitStructure;

        EXTI_InitTypeDef        EXTI_InitStructure;

        NVIC_InitTypeDef        NVIC_InitStructure;

        

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

        

        GPIO_Init(GPIOB,&GPIO_InitStructure);

        

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

        

        GPIO_Init(GPIOA,&GPIO_InitStructure);

        

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

        

        NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;

        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;

        

        NVIC_Init(&NVIC_InitStructure);

        

        

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

        

        EXTI_InitStructure.EXTI_Line=EXTI_Line0;

        EXTI_InitStructure.EXTI_LineCmd=ENABLE;

        EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

        

        EXTI_Init(&EXTI_InitStructure);

}





int main(void)

{



        EXTI_Config();

        

        while(flag)

        {

                flag=0;

                GPIOB->ODR^=1ul;

        }

}



void EXTI0_IRQHandler(void)

{

                if(EXTI_GetITStatus(EXTI_Line0)==SET)

                {

                        flag=1;

                //        GPIOB->ODR^=1ul;

                        EXTI_ClearITPendingBit(EXTI_Line0);

                }

}





如果直接在中断函数里面翻转LED就能行的.



使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

457

主题

483

帖子

1

粉丝