- Timer overview for stm32f103c8t6
- CubeMX setup a general timer
- Coding with timer 2
- Code:
- ../Code/_105_timer
- Test
- timer pooling, toggle led each 1s: ../Test/_105_timer_pooling.mp4

- With stm32f103C8t6 we have 4 timer:
- Advanced Control: TIM1 using APB2
- General purpose: TIM 2 - TIM 4 using APB1

- Clock frequency for stm32f103C8t6:
- clock config 72MHz for APB1:

- Then configure the TIM2 countup each
1us: 
- Then check generate .c and .h file:

- (If interrupt mode) tick to enable interrupt

- Now in project we have
tim.handtim.c - In folder driver for stm32f103 find the
stm32f1xx_hal_tim.hlist all APIs for timer.
extern TIM_HandleTypeDef htim2;void MX_TIM2_Init(void);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
// Callback in non blocking modes (Interrupt and DMA)
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);