142 lines
5.3 KiB
C
142 lines
5.3 KiB
C
|
#include "main.h"
|
|||
|
#include "stm32f4xx_exti.h"
|
|||
|
|
|||
|
char key_wps_flg = 0;
|
|||
|
char Key_Cal_Flag = 0;
|
|||
|
|
|||
|
// GPIO<49><4F>ʼ<EFBFBD><CABC>
|
|||
|
/*******************************************************************************/
|
|||
|
void GPIO_Set_Init(void)
|
|||
|
{
|
|||
|
GPIOA_Init();
|
|||
|
GPIOB_Init();
|
|||
|
GPIOC_Init();
|
|||
|
}
|
|||
|
|
|||
|
// GPIOA<4F><41>ʼ<EFBFBD><CABC>
|
|||
|
/*******************************************************************************/
|
|||
|
void GPIOA_Init(void)
|
|||
|
{
|
|||
|
}
|
|||
|
// GPIOB<4F><42>ʼ<EFBFBD><CABC>
|
|||
|
// LED_B-PB0--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// LED_G-PB1--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// LED_R-PB2--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// OP1_A-PB8--<2D><><EFBFBD><EFBFBD><EFBFBD>Ч--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// OP1_B-PB9--<2D><><EFBFBD><EFBFBD><EFBFBD>Ч--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/*******************************************************************************/
|
|||
|
void GPIOB_Init(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //ʹ<><CAB9>GPIOBʱ<42><CAB1>
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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; //<2F><>ͨ<EFBFBD><CDA8><EFBFBD>ģʽ
|
|||
|
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz
|
|||
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //<2F><><EFBFBD><EFBFBD>
|
|||
|
GPIO_Init(GPIOB, &GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
|||
|
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); //<2F><><EFBFBD>øߣ<C3B8><DFA3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
// GPIOC<4F><43>ʼ<EFBFBD><CABC>
|
|||
|
// Dis_1310-PC1--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// HOLD-PC4--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/*******************************************************************************/
|
|||
|
void GPIOC_Init(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); //ʹ<><CAB9>GPIOCʱ<43><CAB1>
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //<2F><>ͨ<EFBFBD><CDA8><EFBFBD>ģʽ
|
|||
|
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz
|
|||
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //<2F><><EFBFBD><EFBFBD>
|
|||
|
GPIO_Init(GPIOC, &GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
|||
|
GPIO_SetBits(GPIOC, GPIO_Pin_1 | GPIO_Pin_4); //<2F><><EFBFBD>øߣ<C3B8><DFA3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
void WIFI_Reset(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //ʹ<><CAB9>GPIOBʱ<42><CAB1>
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 ;
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //<2F><>ͨ<EFBFBD><CDA8><EFBFBD>ģʽ
|
|||
|
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz
|
|||
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //<2F><><EFBFBD><EFBFBD>
|
|||
|
GPIO_Init(GPIOB, &GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
|||
|
WIFI_RESET = 0;
|
|||
|
delay_ms(50);
|
|||
|
WIFI_RESET = 1;
|
|||
|
delay_ms(50);
|
|||
|
WIFI_RESET = 0;
|
|||
|
delay_ms(50);
|
|||
|
WIFI_RESET = 1;
|
|||
|
delay_ms(50);
|
|||
|
|
|||
|
}
|
|||
|
// <20>жϳ<D0B6>ʼ<EFBFBD><CABC>
|
|||
|
// KEY_CAL-PB10--<2D><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// KEY_WPS-PB11--<2D><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/*******************************************************************************/
|
|||
|
void EXTI_Set_Init(void)
|
|||
|
{
|
|||
|
// EXTI_InitTypeDef EXTI_InitStruct;
|
|||
|
// NVIC_InitTypeDef NVIC_InitStructure;
|
|||
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|||
|
|
|||
|
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); //ʹ<><CAB9>SYSCFGʱ<47><CAB1>
|
|||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//ʹ<><CAB9>GPIOBʱ<42><CAB1>
|
|||
|
// SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource10); // PB10,KEY_CAL<41><4C><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>10
|
|||
|
// SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource11); // PB11,KEY_WPS<50><53><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>11
|
|||
|
|
|||
|
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11; //KEY1 KEY0 <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ģʽ
|
|||
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M
|
|||
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_Init(GPIOB, &GPIO_InitStructure);//<2F><>ʼ<EFBFBD><CABC>PB10,PB11
|
|||
|
|
|||
|
// EXTI_InitStruct.EXTI_Line = EXTI_Line10;
|
|||
|
// EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; // KEY_CAL<41>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD>
|
|||
|
// EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt; //<2F>ж<EFBFBD>ģʽ
|
|||
|
// EXTI_InitStruct.EXTI_LineCmd = ENABLE;
|
|||
|
// EXTI_Init(&EXTI_InitStruct);
|
|||
|
|
|||
|
// EXTI_InitStruct.EXTI_Line = EXTI_Line11;
|
|||
|
// EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; // KEY_WPS<50>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD>
|
|||
|
// EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt; //<2F>ж<EFBFBD>ģʽ
|
|||
|
// EXTI_InitStruct.EXTI_LineCmd = ENABLE;
|
|||
|
// EXTI_Init(&EXTI_InitStruct);
|
|||
|
|
|||
|
// NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //<2F>ⲿ<EFBFBD>ж<EFBFBD>4
|
|||
|
// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03; //<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
|||
|
// NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; // <09><>Ӧ<EFBFBD><D3A6><EFBFBD>ȼ<EFBFBD>2
|
|||
|
// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ʹ<><CAB9><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>
|
|||
|
// NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>NVIC
|
|||
|
}
|
|||
|
|
|||
|
//<2F>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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);
|
|||
|
}
|
|||
|
}
|