34 void POWER_Init(
void )
36 GPIO_InitTypeDef GPIO_InitStructure;
39 RCC_PERIPH_GPIO_CLOCK_CMD( GPIO_PWR_PERIPH_STAT, ENABLE );
42 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
43 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
44 GPIO_InitStructure.GPIO_Pin = GPIO_PWR_LOADING_PIN | GPIO_PWR_DONE_PIN;
45 GPIO_Init( GPIOx_PWR_STAT, &GPIO_InitStructure );
66 s32 POWER_ReadStatus(
void )
68 #define DEBUG_DISPLAY 0
71 s32 status1 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_LOADING_PIN ) == Bit_SET );
72 s32 status2 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_DONE_PIN ) == Bit_SET );
73 s32 flagsta = status1 + 2 * status2;
86 #if defined(DEBUG_DISPLAY) && DEBUG_DISPLAY
88 strcpy( buffer,
"StF:0" );
97 s32 flagsta_IPU, flagsta_IPD;
100 GPIO_InitTypeDef GPIO_InitStructure;
102 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
103 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
104 GPIO_InitStructure.GPIO_Pin = GPIO_PWR_LOADING_PIN | GPIO_PWR_DONE_PIN;
105 GPIO_Init( GPIOx_PWR_STAT, &GPIO_InitStructure );
108 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
109 GPIO_Init( GPIOx_PWR_STAT, &GPIO_InitStructure );
111 status1 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_LOADING_PIN ) == Bit_SET );
112 status2 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_DONE_PIN ) == Bit_SET );
113 flagsta_IPU = status1 + 2 * status2;
115 #if defined(DEBUG_DISPLAY) && DEBUG_DISPLAY
116 strcpy( buffer,
"StU:0" );
117 buffer[4] += flagsta_IPU;
121 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
122 GPIO_Init( GPIOx_PWR_STAT, &GPIO_InitStructure );
125 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
126 GPIO_Init( GPIOx_PWR_STAT, &GPIO_InitStructure );
128 status1 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_LOADING_PIN ) == Bit_SET );
129 status2 = ( GPIO_ReadInputDataBit( GPIOx_PWR_STAT, GPIO_PWR_DONE_PIN ) == Bit_SET );
130 flagsta_IPD = status1 + 2 * status2;
132 #if defined(DEBUG_DISPLAY) && DEBUG_DISPLAY
133 strcpy( buffer,
"StD:0" );
134 buffer[4] += flagsta_IPD;
139 if ( ( flagsta_IPD != flagsta ) || ( flagsta_IPU != flagsta ) )
172 baksys2 |= ( AutorunOn ? ( BKPMASK_S2_AUTORUN ) : 0 );
175 baksys2 |= ( AUDIO_SpeakerOn ? BKPMASK_S2_SPEAKER : 0 );
178 baksys2 |= ( AUDIO_Mute ? BKPMASK_S2_MUTE : 0 );
181 baksys2 |= ( AUDIO_BuzzerOn ? ( BKPMASK_S2_BUZZER ) : 0 );
184 baksys2 |= ( JoystickAsInput ? BKPMASK_S2_JOYSTICK : 0 );
187 baksys2 |= ( MemsAsInput ? BKPMASK_S2_MEMS : 0 );
190 baksys2 |= ( TchscrAsInput ? ( BKPMASK_S2_TCHSCR ) : 0 );
206 TIM_ITConfig( TIM2, TIM_IT_Update, DISABLE );
214 RCC_PERIPH_GPIO_CLOCK_CMD( GPIO_PWR_PERIPH, ENABLE );
217 GPIO_InitTypeDef GPIO_InitStructure;
218 GPIO_InitStructure.GPIO_Pin = GPIO_PWR_SHUTDOWN_PIN;
219 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
220 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
221 GPIO_Init( GPIOx_PWR, &GPIO_InitStructure );
223 GPIO_WriteBit( GPIOx_PWR, GPIO_PWR_SHUTDOWN_PIN, SET );