3、代码实现
- /*
- 普通定时器实现us延时
- */
- void user_delaynus_tim(uint32_t nus)
- {
- uint16_t differ = 0xffff-nus-5;
- //设置定时器2的技术初始值
- __HAL_TIM_SetCounter(&htim2,differ);
- //开启定时器
- HAL_TIM_Base_Start(&htim2);
- while( differ<0xffff-5)
- {
- differ = __HAL_TIM_GetCounter(&htim2);
- };
- //关闭定时器
- HAL_TIM_Base_Stop(&htim2);
- }
- /*
- 普通定时器实现ms延时,可直接使用HAL库函数HAL_delay()
- */
- void delay_ms_tim(uint16_t nms)
- {
- uint32_t i;
- for(i=0;i<nms;i++) user_delaynus_tim(1000);
|