12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- ******************************************************************************
- * @file bsp_TimBase.c
- * @author fire
- * @version V1.0
- * @date 2019-2-14
- * @brief TIM2 1ms 定时应用bsp
- ******************************************************************************
- * @attention
- *
- * 实验平台:保护跳闸 开发板
- *
- ******************************************************************************
- */
- #include "Timer2.h"
- #include "sys.h"
- TIM_HandleTypeDef TIM2_Handler; //定时器句柄
- u32 lwip_localtime=0; //lwip本地时间计数器,单位:ms
- /*
- * TIM_Period / Auto Reload Register(ARR) = 1000 TIM_Prescaler--71
- * 中断周期为 = 1/(72MHZ /72) * 1000 = 1ms
- *
- * TIMxCLK/CK_PSC --> TIMxCNT --> TIM_Period(ARR) --> 中断 且TIMxCNT重置为0重新计数
- */
- void Timer2_Init(u16 arr,u16 psc)
- {
- //定时器2
- __HAL_RCC_TIM2_CLK_ENABLE();
- HAL_NVIC_SetPriority(TIM2_IRQn,1,3); //设置中断优先级,抢占优先级2,子优先级2
- HAL_NVIC_EnableIRQ(TIM2_IRQn); //开启ITM4中断
-
- TIM2_Handler.Instance=TIM2; //通用定时器2
- /* 累计 TIM_Period个频率后产生一个更新或者中断 */
- /* 时钟预分频数为72 */
- TIM2_Handler.Init.Prescaler=psc; //分频
- TIM2_Handler.Init.CounterMode=TIM_COUNTERMODE_UP; //向上计数器
- /* 自动重装载寄存器周期的值(计数值) */
- TIM2_Handler.Init.Period=arr; //自动装载值
- /* 对外部时钟进行采样的时钟分频,这里没有用到 */
- TIM2_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1; //1分频
- HAL_TIM_Base_Init(&TIM2_Handler);
- // HAL_TIM_Base_Start_IT(&TIM2_Handler); //使能定时器2和定时器2中断
- }
- //定时器2中断服务程序
- void TIM2_IRQHandler(void)
- {
- if(__HAL_TIM_GET_IT_SOURCE(&TIM2_Handler,TIM_IT_UPDATE)==SET)//溢出中断
- {
- // usmart_dev.scan(); //执行usmart扫描
- __HAL_TIM_SET_COUNTER(&TIM2_Handler,0);; //清空定时器的CNT
- __HAL_TIM_SET_AUTORELOAD(&TIM2_Handler,100);//恢复原来的设置
- }
- __HAL_TIM_CLEAR_IT(&TIM2_Handler, TIM_IT_UPDATE);//清除中断标志位
- }
- //定时器3中断服务函数
- void TIM3_IRQHandler(void)
- {
- HAL_TIM_IRQHandler(&TIM2_Handler);
- }
- //回调函数,定时器中断服务函数调用
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
- {
- if(htim==(&TIM2_Handler))
- {
- lwip_localtime +=10; //加10
- }
- }
- /*********************************************END OF FILE**********************/
|