static void SimpleBLEPeripheral_processStateChangeEvt(gaprole_States_t newState) { ConnectStatus = newState; switch ( newState ) { case GAPROLE_STARTED: { uint8_t ownAddress[B_ADDR_LEN]; uint8_t systemId[DEVINFO_SYSTEM_ID_LEN]; GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress); // use 6 bytes of device address for 8 bytes of system ID value systemId[0] = ownAddress[0]; systemId[1] = ownAddress[1]; systemId[2] = ownAddress[2]; // set middle bytes to zero systemId[4] = 0x00; systemId[3] = 0x00; // shift three bytes up systemId[7] = ownAddress[5]; systemId[6] = ownAddress[4]; systemId[5] = ownAddress[3]; DevInfo_SetParameter(DEVINFO_SYSTEM_ID, DEVINFO_SYSTEM_ID_LEN, systemId); } break; case GAPROLE_ADVERTISING: ConnectStatus = GAPROLE_ADVERTISING; break; case GAPROLE_CONNECTED: { uint8_t peerAddress[B_ADDR_LEN]; GAPRole_GetParameter(GAPROLE_CONN_BD_ADDR, peerAddress); HalLedSet(SWITCH_PIN,0);//打开外设和器件电源 HalLedSet(CS_PIN,1);//adc cs脚拉高 uint32 sleepUs=1000; Task_sleep(sleepUs / Clock_tickPeriod);//1ms延时等待电源稳定 HalLedSet(LED_PIN,1);//打开LED灯 Util_startClock(&periodicClock);//开关系统定时时钟 InitConfig();//初始化ADC配置 init_gpt1();//打开精确定时器中断 ConnectStatus = GAPROLE_CONNECTED; } break; case GAPROLE_CONNECTED_ADV: LCD_WRITE_STRING("Connected Advertising", LCD_PAGE2); break; case GAPROLE_WAITING: ConnectStatus = GAPROLE_WAITING; HalLedSet(RESET_PIN,1);//复位CPU,使器件回到初始化的低功耗状态 SimpleBLEPeripheral_freeAttRsp(bleNotConnected); break; case GAPROLE_WAITING_AFTER_TIMEOUT: SimpleBLEPeripheral_freeAttRsp(bleNotConnected); break; case GAPROLE_ERROR: LCD_WRITE_STRING("Error", LCD_PAGE2); break; default: LCD_WRITE_STRING("", LCD_PAGE2); break; } // Update the state //gapProfileState = newState; }