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);
|
||
}
|
||
}
|