#include "main.h" #include "stm32f4xx_exti.h" char key_wps_flg = 0; char Key_Cal_Flag = 0; // GPIO��ʼ�� /*******************************************************************************/ void GPIO_Set_Init(void) { GPIOA_Init(); GPIOB_Init(); GPIOC_Init(); } // GPIOA��ʼ�� /*******************************************************************************/ void GPIOA_Init(void) { } // GPIOB��ʼ�� // LED_B-PB0--��������--������� // LED_G-PB1--��������--������� // LED_R-PB2--��������--������� // OP1_A-PB8--�����Ч--������� // OP1_B-PB9--�����Ч--������� /*******************************************************************************/ void GPIOB_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //ʹ��GPIOBʱ�� //��ʼ������ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //��ͨ���ģʽ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //������� GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //���� GPIO_Init(GPIOB, &GPIO_InitStructure); //��ʼ�� GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); //���øߣ����� } // GPIOC��ʼ�� // Dis_1310-PC1--������Ч--������� // HOLD-PC4--������Ч--������� /*******************************************************************************/ void GPIOC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); //ʹ��GPIOCʱ�� //��ʼ������ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //��ͨ���ģʽ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //������� GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //���� GPIO_Init(GPIOC, &GPIO_InitStructure); //��ʼ�� GPIO_SetBits(GPIOC, GPIO_Pin_1 | GPIO_Pin_4); //���øߣ����� } void WIFI_Reset(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //ʹ��GPIOBʱ�� //��ʼ������ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //��ͨ���ģʽ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //������� GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //���� GPIO_Init(GPIOB, &GPIO_InitStructure); //��ʼ�� WIFI_RESET = 0; delay_ms(50); WIFI_RESET = 1; delay_ms(50); WIFI_RESET = 0; delay_ms(50); WIFI_RESET = 1; delay_ms(50); } // �жϳ�ʼ�� // KEY_CAL-PB10--�����õ�--������������ // KEY_WPS-PB11--�����õ�--������������ /*******************************************************************************/ void EXTI_Set_Init(void) { // EXTI_InitTypeDef EXTI_InitStruct; // NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; // RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); //ʹ��SYSCFGʱ�� RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//ʹ��GPIOBʱ�� // SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource10); // PB10,KEY_CAL�����ж���10 // SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource11); // PB11,KEY_WPS�����ж���11 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11; //KEY1 KEY0 ��Ӧ���� GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//��ͨ����ģʽ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//������ GPIO_Init(GPIOB, &GPIO_InitStructure);//��ʼ��PB10,PB11 // EXTI_InitStruct.EXTI_Line = EXTI_Line10; // EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; // KEY_CAL�½��ش��� // EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt; //�ж�ģʽ // EXTI_InitStruct.EXTI_LineCmd = ENABLE; // EXTI_Init(&EXTI_InitStruct); // EXTI_InitStruct.EXTI_Line = EXTI_Line11; // EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; // KEY_WPS�½��ش��� // EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt; //�ж�ģʽ // EXTI_InitStruct.EXTI_LineCmd = ENABLE; // EXTI_Init(&EXTI_InitStruct); // NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //�ⲿ�ж�4 // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03; //��ռ���ȼ�3 // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; // ��Ӧ���ȼ�2 // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ʹ���ⲿ�ж� // NVIC_Init(&NVIC_InitStructure); //����NVIC } //�жϷ����� void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line10) != RESET) { Key_Cal_Flag = 1; EXTI_ClearITPendingBit(EXTI_Line10); } if(EXTI_GetITStatus(EXTI_Line11) != RESET) { key_wps_flg = 1; EXTI_ClearITPendingBit(EXTI_Line11); } }