|
@@ -95,11 +95,27 @@ void HAL_init() {
|
95
|
95
|
void HAL_clear_reset_source() { __HAL_RCC_CLEAR_RESET_FLAGS(); }
|
96
|
96
|
|
97
|
97
|
uint8_t HAL_get_reset_source() {
|
98
|
|
- if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) != RESET) return RST_WATCHDOG;
|
99
|
|
- if (__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST) != RESET) return RST_SOFTWARE;
|
100
|
|
- if (__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) != RESET) return RST_EXTERNAL;
|
101
|
|
- if (__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET) return RST_POWER_ON;
|
102
|
|
- return 0;
|
|
98
|
+ return
|
|
99
|
+ #ifdef RCC_FLAG_IWDGRST // Some sources may not exist...
|
|
100
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) ? RST_WATCHDOG :
|
|
101
|
+ #endif
|
|
102
|
+ #ifdef RCC_FLAG_IWDG1RST
|
|
103
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_IWDG1RST) ? RST_WATCHDOG :
|
|
104
|
+ #endif
|
|
105
|
+ #ifdef RCC_FLAG_IWDG2RST
|
|
106
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_IWDG2RST) ? RST_WATCHDOG :
|
|
107
|
+ #endif
|
|
108
|
+ #ifdef RCC_FLAG_SFTRST
|
|
109
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST) ? RST_SOFTWARE :
|
|
110
|
+ #endif
|
|
111
|
+ #ifdef RCC_FLAG_PINRST
|
|
112
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) ? RST_EXTERNAL :
|
|
113
|
+ #endif
|
|
114
|
+ #ifdef RCC_FLAG_PORRST
|
|
115
|
+ RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_PORRST)) ? RST_POWER_ON :
|
|
116
|
+ #endif
|
|
117
|
+ 0
|
|
118
|
+ ;
|
103
|
119
|
}
|
104
|
120
|
|
105
|
121
|
void _delay_ms(const int delay_ms) { delay(delay_ms); }
|