Job_SignsPads/STM32/Code/STM32-IAP/Application/gpio.c
2025-04-22 10:29:37 +08:00

142 lines
5.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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