📄 stm32f10x_tim.c
字号:
{
/* 复位 CCPC 位 */
TIMx->CR2 &= CR2_CCPC_Reset;
}
}
/**
* @简述 使能或者失能 TIMx 在 CCR1 上的预装载寄存器.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCPreload: 输出比较预装载状态
* 这个参数可以取下面的值之一:
* TIM_OCPreload_Enable
* TIM_OCPreload_Disable
* @返回 没有
*/
void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC1PE 位 */
tmpccmr1 &= CCMR_OC13PE_Reset;
/* 使能或者失能预装载寄存器 */
tmpccmr1 |= TIM_OCPreload;
/* 写 TIMx CCMR1 寄存器 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 使能或者失能 TIMx 在 CCR2 上的预装载寄存器.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCPreload: 输出比较预装载状态
* 这个参数可以取下面的值之一:
* TIM_OCPreload_Enable
* TIM_OCPreload_Disable
* @返回 没有
*/
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC2PE 位 */
tmpccmr1 &= CCMR_OC24PE_Reset;
/* 使能或者失能预装载寄存器 */
tmpccmr1 |= (uint16_t)(TIM_OCPreload << 8);
/* 写 TIMx CCMR1 寄存器 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 使能或者失能 TIMx 在 CCR3 上的预装载寄存器.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCPreload: 输出比较预装载状态
* 这个参数可以取下面的值之一:
* TIM_OCPreload_Enable
* TIM_OCPreload_Disable
* @返回 没有
*/
void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC3PE 位 */
tmpccmr2 &= CCMR_OC13PE_Reset;
/* 使能或者失能预装载寄存器 */
tmpccmr2 |= TIM_OCPreload;
/* 写 TIMx CCMR2 寄存器 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 使能或者失能 TIMx 在 CCR4 上的预装载寄存器.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCPreload: 输出比较预装载状态
* 这个参数可以取下面的值之一:
* TIM_OCPreload_Enable
* TIM_OCPreload_Disable
* @返回 没有
*/
void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC4PE 位 */
tmpccmr2 &= CCMR_OC24PE_Reset;
/* 使能或者失能预装载寄存器 */
tmpccmr2 |= (uint16_t)(TIM_OCPreload << 8);
/* 写 TIMx CCMR2 寄存器 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 设置 TIMx 捕获比较1快速特征.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCFast: 输出比较快速特性新状态.
* 这个参数可以取下面的值之一:
* TIM_OCFast_Enable: TIM 输出比较快速性能使能
* TIM_OCFast_Disable: TIM 输出比较快速性能失能
* @返回 没有
*/
void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast));
/* 得到 TIMx CCMR1 寄存器的值 */
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC1FE 位 */
tmpccmr1 &= CCMR_OC13FE_Reset;
/* 使能或失能捕获比较快速特征 */
tmpccmr1 |= TIM_OCFast;
/* 写 TIMx CCMR1 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 设置 TIMx 捕获比较2快速特征.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCFast: 输出比较快速特性新状态.
* 这个参数可以取下面的值之一:
* TIM_OCFast_Enable: TIM 输出比较快速性能使能
* TIM_OCFast_Disable: TIM 输出比较快速性能失能
* @返回 没有
*/
void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast));
/* 得到 TIMx CCMR1 寄存器的值 */
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC2FE 位 */
tmpccmr1 &= CCMR_OC24FE_Reset;
/* 使能或失能捕获比较快速特征 */
tmpccmr1 |= (uint16_t)(TIM_OCFast << 8);
/* 写 TIMx CCMR1 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 设置 TIMx 捕获比较3快速特征.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCFast: 输出比较快速特性新状态.
* 这个参数可以取下面的值之一:
* TIM_OCFast_Enable: TIM 输出比较快速性能使能
* TIM_OCFast_Disable: TIM 输出比较快速性能失能
* @返回 没有
*/
void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast));
/* 得到 TIMx CCMR2 寄存器的值 */
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC3FE 位 */
tmpccmr2 &= CCMR_OC13FE_Reset;
/* 使能或失能捕获比较快速特征 */
tmpccmr2 |= TIM_OCFast;
/* 写 TIMx CCMR2 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 设置 TIMx 捕获比较4快速特征.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCFast: 输出比较快速特性新状态.
* 这个参数可以取下面的值之一:
* TIM_OCFast_Enable: TIM 输出比较快速性能使能
* TIM_OCFast_Disable: TIM 输出比较快速性能失能
* @返回 没有
*/
void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast));
/* 得到 TIMx CCMR2 寄存器的值 */
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC4FE 位 */
tmpccmr2 &= CCMR_OC24FE_Reset;
/* 使能或失能捕获比较快速特征 */
tmpccmr2 |= (uint16_t)(TIM_OCFast << 8);
/* 写 TIMx CCMR2 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 在一个外部事件时清除或者保持 OCREF1 信号
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCClear: 输出比较清除使能位的新状态.
* 这个参数可以取下面的值之一:
* TIM_OCClear_Enable: TIM 输出比较清除使能
* TIM_OCClear_Disable: TIM 输出比较清除失能
* @返回 没有
*/
void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear));
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC1CE 位 */
tmpccmr1 &= CCMR_OC13CE_Reset;
/* 使能或失能输出比较清除位 */
tmpccmr1 |= TIM_OCClear;
/* 写 TIMx CCMR1 寄存器 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 在一个外部事件时清除或者保持 OCREF2 信号
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCClear: 输出比较清除使能位的新状态.
* 这个参数可以取下面的值之一:
* TIM_OCClear_Enable: TIM 输出比较清除使能
* TIM_OCClear_Disable: TIM 输出比较清除失能
* @返回 没有
*/
void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
{
uint16_t tmpccmr1 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear));
tmpccmr1 = TIMx->CCMR1;
/* 复位 OC2CE 位 */
tmpccmr1 &= CCMR_OC24CE_Reset;
/* 使能或失能输出比较清除位 */
tmpccmr1 |= (uint16_t)(TIM_OCClear << 8);
/* 写 TIMx CCMR1 寄存器 */
TIMx->CCMR1 = tmpccmr1;
}
/**
* @简述 在一个外部事件时清除或者保持 OCREF3 信号
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCClear: 输出比较清除使能位的新状态.
* 这个参数可以取下面的值之一:
* TIM_OCClear_Enable: TIM 输出比较清除使能
* TIM_OCClear_Disable: TIM 输出比较清除失能
* @返回 没有
*/
void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear));
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC3CE 位 */
tmpccmr2 &= CCMR_OC13CE_Reset;
/* 使能或失能输出比较清除位 */
tmpccmr2 |= TIM_OCClear;
/* 写 TIMx CCMR2 寄存器 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 在一个外部事件时清除或者保持 OCREF4 信号
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCClear: 输出比较清除使能位的新状态.
* 这个参数可以取下面的值之一:
* TIM_OCClear_Enable: TIM 输出比较清除使能
* TIM_OCClear_Disable: TIM 输出比较清除失能
* @返回 没有
*/
void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
{
uint16_t tmpccmr2 = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear));
tmpccmr2 = TIMx->CCMR2;
/* 复位 OC4CE 位 */
tmpccmr2 &= CCMR_OC24CE_Reset;
/* 使能或失能输出比较清除位 */
tmpccmr2 |= (uint16_t)(TIM_OCClear << 8);
/* 写 TIMx CCMR2 寄存器 */
TIMx->CCMR2 = tmpccmr2;
}
/**
* @简述 设置 TIMx 通道1极性.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCPolarity: 指定的 OC1 极性
* 这个参数可以取下面的值之一:
* TIM_OCPolarity_High: 输出比较极性高
* TIM_OCPolarity_Low: 输出比较极性低
* @返回 没有
*/
void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
{
uint16_t tmpccer = 0;
/* 检查参数 */
assert_param(IS_TIM_123458_PERIPH(TIMx));
assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity));
tmpccer = TIMx->CCER;
/* 设置或复位 CC1P 位 */
tmpccer &= CCER_CC1P_Reset;
tmpccer |= TIM_OCPolarity;
/* 写 TIMx CCER 寄存器 */
TIMx->CCER = tmpccer;
}
/**
* @简述 配置 TIMx 通道 1N 极性.
* @参数 TIMx: 此处x可以是1,2,3,4,5或8以选择外设.
* @参数 TIM_OCNPolarity: 指定 OC1N 极性
* 这个参数可以取下面的值之一:
* TIM_OCNPolarity_High: 输出比较极性高
* TIM_OCNPolarity_Low: 输出比较极性低
* @返回 没有
*/
void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)
{
uint16_t tmpccer = 0;
/* 检查参数 */
assert_param(IS_TIM_18_PERIPH(TIMx));
assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity));
tmpccer = TIMx->CCER;
/* 设置或复位 CC1NP 位 */
tmpccer &= CCER_CC1NP_Reset;
tmpccer |= TIM_OCNPolarity;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -