| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef _TIMER_H
- #define _TIMER_H
- #include "stm32g0xx_hal.h"
- #include <rtthread.h>
- /* USER CODE BEGIN Includes */
- /* USER CODE END Includes */
- #define GENERAL_TIM7 TIM7
- #define GENERAL_TIM_RCC_CLK_ENABLE() __HAL_RCC_TIM7_CLK_ENABLE()
- #define GENERAL_TIM_RCC_CLK_DISABLE() __HAL_RCC_TIM7_CLK_DISABLE()
- #define GENERAL_TIM_IRQ TIM7_IRQn
- // 定义定时器预分频,定时器实际时钟频率为:72MHz/(GENERAL_TIMx_PRESCALER+1)
- #define GENERAL_TIM_PRESCALER 63 // 实际时钟频率为:1MHz
- // 定义定时器周期,当定时器开始计数到GENERAL_TIMx_PERIOD值是更新定时器并生成对应事件和中断
- #define GENERAL_TIM_PERIOD 1000 // 定时器产生中断频率为:1MHz/1000=1KHz,即1ms定时周期
- // 最终定时器频率计算为: 72MHz/(GENERAL_TIMx_PRESCALER+1)/GENERAL_TIMx_PERIOD
- // 比如需要产生20ms周期定时,可以设置为: 72MHz/(359+1)/4000=50Hz,即20ms周期
- // 这里设置 GENERAL_TIMx_PRESCALER=359;GENERAL_TIMx_PERIOD=4000;
- extern TIM_HandleTypeDef htim14;
- extern TIM_HandleTypeDef htim3;
- extern TIM_HandleTypeDef htim7;
- /* USER CODE BEGIN Private defines */
- /* USER CODE END Private defines */
- void MODBUS_Tim14_Init(void);
- void MODBUS_Tim3_Init(void);
- void GENERAL_TIM7_Init(void);
- void delayXus(uint16_t us);
- //以下两个函数用来测量间隔时间
- extern uint32_t bsp_GetRunTime(void); //返回当前时间,单位ms
- extern uint32_t bsp_CheckRunTime(int32_t _LastTime); //返回与之前间隔的时间
- #endif
|