@@ -168,8 +168,16 @@ static void timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state)
168
168
uint32_t FLatency = 0 ;
169
169
RCC_ClkInitTypeDef RCC_ClkInitStruct ;
170
170
HAL_RCC_GetClockConfig (& RCC_ClkInitStruct , & FLatency );
171
- uint32_t pclk1_doubler = 1 + ( RCC_ClkInitStruct .APB1CLKDivider != RCC_HCLK_DIV1 );
172
- uint32_t pclk2_doubler = 1 + ( RCC_ClkInitStruct .APB2CLKDivider != RCC_HCLK_DIV1 );
171
+ uint32_t pclk1_doubler = 1 ;
172
+ uint32_t pclk2_doubler = 1 ;
173
+ if (RCC_ClkInitStruct .APB1CLKDivider != RCC_HCLK_DIV1 )
174
+ {
175
+ pclk1_doubler = pclk1_doubler + 1 ;
176
+ }
177
+ if (RCC_ClkInitStruct .APB2CLKDivider != RCC_HCLK_DIV1 )
178
+ {
179
+ pclk2_doubler = pclk2_doubler + 1 ;
180
+ }
173
181
174
182
/* time init */
175
183
#if defined(SOC_SERIES_STM32F2 ) || defined(SOC_SERIES_STM32F4 ) || defined(SOC_SERIES_STM32F7 )
@@ -300,8 +308,16 @@ static rt_err_t timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg)
300
308
uint32_t FLatency = 0 ;
301
309
RCC_ClkInitTypeDef RCC_ClkInitStruct ;
302
310
HAL_RCC_GetClockConfig (& RCC_ClkInitStruct , & FLatency );
303
- uint32_t pclk1_doubler = 1 + ( RCC_ClkInitStruct .APB1CLKDivider != RCC_HCLK_DIV1 );
304
- uint32_t pclk2_doubler = 1 + ( RCC_ClkInitStruct .APB2CLKDivider != RCC_HCLK_DIV1 );
311
+ uint32_t pclk1_doubler = 1 ;
312
+ uint32_t pclk2_doubler = 1 ;
313
+ if (RCC_ClkInitStruct .APB1CLKDivider != RCC_HCLK_DIV1 )
314
+ {
315
+ pclk1_doubler = pclk1_doubler + 1 ;
316
+ }
317
+ if (RCC_ClkInitStruct .APB2CLKDivider != RCC_HCLK_DIV1 )
318
+ {
319
+ pclk2_doubler = pclk2_doubler + 1 ;
320
+ }
305
321
306
322
#if defined(SOC_SERIES_STM32F2 ) || defined(SOC_SERIES_STM32F4 ) || defined(SOC_SERIES_STM32F7 )
307
323
if (tim -> Instance == TIM9 || tim -> Instance == TIM10 || tim -> Instance == TIM11 )
0 commit comments