//#include "stdafx.h" #include "poweroffon.h" #include "include.h" void gprs_device_poweroff(); void gprs_device_poweron(); //pc7 ---> pa1 void gprs_device_init() { // return; GPIO_InitTypeDef GPIO_InitStructure; // RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | SPI_FLASH_GPIO_CLK | FRAM_SPI_SCK_GPIO_CLK | FRAM_SPI_MISO_GPIO_CLK | FRAM_SPI_MOSI_GPIO_CLK , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB||RCC_APB2Periph_GPIOC , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); // GPIO_SetBits(GPIOA, GPIO_Pin_1); // GPIO_ReetBits(GPIOA, GPIO_Pin_1); // GPIO_ResetBits(GPIOA, GPIO_Pin_1); gprs_device_poweron(); } void gprs_device_poweroff() { #if 0 printf("gprs 拉低控制脚 700毫秒\r\n"); //GPIO_SetBits(GPIOA, GPIO_Pin_1); GPIO_SetBits(GPIOC, GPIO_Pin_7); vTaskDelay(700/portTICK_RATE_MS); printf("gprs 拉高控制脚 50毫秒\r\n"); //GPIO_ResetBits(GPIOA, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_7); vTaskDelay(50/portTICK_RATE_MS); #endif printf("gprs 拉低电源脚,断电,1000毫秒\r\n"); //电源脚 GPIO_SetBits(GPIOB, GPIO_Pin_0); vTaskDelay(1000/portTICK_RATE_MS); } void gprs_device_ctl_h() { //printf("拉高控制脚PWRKEY = 1\r\n\r\n"); //GPIO_SetBits(GPIOC, GPIO_Pin_7); //vTaskDelay(10/portTICK_RATE_MS); } void gprs_device_poweron() { #if 0 printf("gprs 拉高电源脚,供电\r\n"); //电源脚 GPIO_ResetBits(GPIOB, GPIO_Pin_0); vTaskDelay(1000/portTICK_RATE_MS); printf("gprs 控制脚拉高 1000毫秒\r\n"); //GPIO_SetBits(GPIOA, GPIO_Pin_1); GPIO_SetBits(GPIOC, GPIO_Pin_7); vTaskDelay(1000/portTICK_RATE_MS); printf("gprs 拉低控制脚\r\n"); //控制脚 //GPIO_ResetBits(GPIOA, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_7); vTaskDelay(1000/portTICK_RATE_MS); printf("gprs 等待5秒 发送AT命令\r\n"); vTaskDelay(5000/portTICK_RATE_MS); #endif printf("gprs 拉高电源脚,供电\r\n"); //电源脚 GPIO_ResetBits(GPIOB, GPIO_Pin_0); vTaskDelay(1000/portTICK_RATE_MS); printf("gprs 控制脚拉低 200毫秒\r\n"); GPIO_ResetBits(GPIOC, GPIO_Pin_7); vTaskDelay(200/portTICK_RATE_MS); printf("gprs 控制脚拉高 100毫秒\r\n"); GPIO_SetBits(GPIOC, GPIO_Pin_7); vTaskDelay(100/portTICK_RATE_MS); // STM_GPRS_PCTRL_ON(); // OSTimeDlyHMSM(0,0,0,200,OS_OPT_TIME_HMSM_NON_STRICT,&err); // STM_GPRS_ONOFF_L(); // OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_NON_STRICT,&err); // STM_GPRS_ONOFF_H(); // OSTimeDlyHMSM(0,0,10,0,OS_OPT_TIME_HMSM_NON_STRICT,&err); // dbug_printf(MSG_GPRS_INFO,"gprs_power_on finish\r\n"); }