@@ -28,7 +28,6 @@ void GpioMcuInit( Gpio_t *obj, PinNames pin, PinModes mode, PinConfigs config, P
2828 obj -> pin = pin ;
2929 obj -> pinIndex = ( 0x01 << ( obj -> pin & 0x0F ) );
3030
31-
3231 if ( ( obj -> pin & 0xF0 ) == 0x00 )
3332 {
3433 obj -> port = GPIOA ;
@@ -116,15 +115,15 @@ void GpioMcuSetInterrupt( Gpio_t *obj, IrqModes irqMode, IrqPriorities irqPriori
116115
117116 if ( irqMode == IRQ_RISING_EDGE )
118117 {
119- GPIO_InitStructure .Mode = GPIO_MODE_IT_RISING ;
118+ GPIO_InitStructure .Mode = GPIO_MODE_IT_RISING ;
120119 }
121120 else if ( irqMode == IRQ_FALLING_EDGE )
122121 {
123- GPIO_InitStructure .Mode = GPIO_MODE_IT_FALLING ;
122+ GPIO_InitStructure .Mode = GPIO_MODE_IT_FALLING ;
124123 }
125124 else
126125 {
127- GPIO_InitStructure .Mode = GPIO_MODE_IT_RISING_FALLING ;
126+ GPIO_InitStructure .Mode = GPIO_MODE_IT_RISING_FALLING ;
128127 }
129128
130129 GPIO_InitStructure .Pull = GPIO_NOPULL ;
@@ -215,6 +214,21 @@ void GpioMcuWrite( Gpio_t *obj, uint32_t value )
215214 HAL_GPIO_WritePin ( obj -> port , obj -> pinIndex , ( GPIO_PinState )value );
216215}
217216
217+ void GpioMcuToggle ( Gpio_t * obj )
218+ {
219+ if ( ( obj == NULL ) || ( obj -> port == NULL ) )
220+ {
221+ assert_param ( FAIL );
222+ }
223+
224+ // Check if pin is not connected
225+ if ( obj -> pin == NC )
226+ {
227+ return ;
228+ }
229+ HAL_GPIO_TogglePin ( obj -> port , obj -> pinIndex );
230+ }
231+
218232uint32_t GpioMcuRead ( Gpio_t * obj )
219233{
220234 if ( obj == NULL )
@@ -226,43 +240,54 @@ uint32_t GpioMcuRead( Gpio_t *obj )
226240 {
227241 return 0 ;
228242 }
229- return HAL_GPIO_ReadPin ( obj -> port , obj -> pinIndex );
243+ return HAL_GPIO_ReadPin ( obj -> port , obj -> pinIndex );
230244}
231245
232-
233246void EXTI0_IRQHandler ( void )
234247{
248+ #if !defined( USE_NO_TIMER )
235249 RtcRecoverMcuStatus ( );
250+ #endif
236251 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_0 );
237252}
238253
239254void EXTI1_IRQHandler ( void )
240255{
256+ #if !defined( USE_NO_TIMER )
241257 RtcRecoverMcuStatus ( );
258+ #endif
242259 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_1 );
243260}
244261
245262void EXTI2_IRQHandler ( void )
246263{
264+ #if !defined( USE_NO_TIMER )
247265 RtcRecoverMcuStatus ( );
266+ #endif
248267 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_2 );
249268}
250269
251270void EXTI3_IRQHandler ( void )
252271{
272+ #if !defined( USE_NO_TIMER )
253273 RtcRecoverMcuStatus ( );
274+ #endif
254275 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_3 );
255276}
256277
257278void EXTI4_IRQHandler ( void )
258279{
280+ #if !defined( USE_NO_TIMER )
259281 RtcRecoverMcuStatus ( );
282+ #endif
260283 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_4 );
261284}
262285
263286void EXTI9_5_IRQHandler ( void )
264287{
288+ #if !defined( USE_NO_TIMER )
265289 RtcRecoverMcuStatus ( );
290+ #endif
266291 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_5 );
267292 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_6 );
268293 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_7 );
@@ -272,7 +297,9 @@ void EXTI9_5_IRQHandler( void )
272297
273298void EXTI15_10_IRQHandler ( void )
274299{
300+ #if !defined( USE_NO_TIMER )
275301 RtcRecoverMcuStatus ( );
302+ #endif
276303 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_10 );
277304 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_11 );
278305 HAL_GPIO_EXTI_IRQHandler ( GPIO_PIN_12 );
0 commit comments