91 lines
2.8 KiB
C
91 lines
2.8 KiB
C
/**
|
|
****************************************************************************************************
|
|
* @file gtim.h
|
|
* @author 正点原子团队(ALIENTEK)
|
|
* @version V1.1
|
|
* @date 2021-10-15
|
|
* @brief 通用定时器 驱动代码
|
|
* @license Copyright (c) 2020-2032, 广州市星翼电子科技有限公司
|
|
****************************************************************************************************
|
|
* @attention
|
|
*
|
|
* 实验平台:正点原子 探索者 F407开发板
|
|
* 在线视频:www.yuanzige.com
|
|
* 技术论坛:www.openedv.com
|
|
* 公司网址:www.alientek.com
|
|
* 购买地址:openedv.taobao.com
|
|
*
|
|
* 修改说明
|
|
* V1.0 20211015
|
|
* 第一次发布
|
|
* V1.1 20211015
|
|
* 1,新增gtim_timx_pwm_chy_init函数
|
|
*
|
|
****************************************************************************************************
|
|
*/
|
|
|
|
#ifndef __GTIM_H
|
|
#define __GTIM_H
|
|
|
|
#include "./SYSTEM/sys/sys.h"
|
|
|
|
|
|
/****************************************************************************************************/
|
|
/* 通用定时器 定义 */
|
|
|
|
/* TIMX 中断定义
|
|
* 默认是针对TIM2~TIM5
|
|
* 注意: 通过修改这4个宏定义,可以支持TIM1~TIM8任意一个定时器.
|
|
*/
|
|
|
|
#define GTIM_TIMX_INT TIM2
|
|
#define GTIM_TIMX_INT_IRQn TIM2_IRQn
|
|
#define GTIM_TIMX_INT_IRQHandler TIM2_IRQHandler
|
|
#define GTIM_TIMX_INT_CLK_ENABLE() do{ __HAL_RCC_TIM2_CLK_ENABLE(); }while(0) /* TIM3 时钟使能 */
|
|
|
|
/*********************************以下是通用定时器PWM输出实验相关宏定义*************************************/
|
|
|
|
/* TIMX PWM输出定义
|
|
* 这里输出的PWM控制LED0(RED)的亮度
|
|
* 默认是针对TIM2~TIM5
|
|
* 注意: 通过修改这几个宏定义,可以支持TIM1~TIM8任意一个定时器,任意一个IO口输出PWM
|
|
*/
|
|
#define GTIM_TIMX_PWM_CHY_GPIO_PORT GPIOA
|
|
#define GTIM_TIMX_PWM_CHY_GPIO_PIN GPIO_PIN_2
|
|
#define GTIM_TIMX_PWM_CHY_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0) /* PF口时钟使能 */
|
|
#define GTIM_TIMX_PWM_CHY_GPIO_AF GPIO_AF1_TIM2 /* 端口复用到TIM14 */
|
|
|
|
/* TIMX REMAP设置
|
|
* 因为我们LED0接在PF9上, 必须通过开启TIM14的部分重映射功能, 才能将TIM14_CH1输出到PF9上
|
|
*/
|
|
|
|
#define GTIM_TIMX_PWM TIM2 /* TIM14 */
|
|
#define GTIM_TIMX_PWM_CHY TIM_CHANNEL_3 /* 通道Y, 1<= Y <=4 */
|
|
#define GTIM_TIMX_PWM_CHY_CCRX TIM2->CCR1 /* 通道Y的输出比较寄存器 */
|
|
#define GTIM_TIMX_PWM_CHY_CLK_ENABLE() do{ __HAL_RCC_TIM2_CLK_ENABLE(); }while(0) /* TIM14 时钟使能 */
|
|
|
|
/****************************************************************************************************/
|
|
|
|
void gtim_timx_int_init(uint16_t arr, uint16_t psc); /* 通用定时器 定时中断初始化函数 */
|
|
void gtim_timx_pwm_chy_init(uint16_t arr, uint16_t psc); /* 通用定时器 PWM初始化函数 */
|
|
|
|
extern TIM_HandleTypeDef g_timx_pwm_chy_handle; /* 定时器x句柄 */
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|