STM32F10x_TIM(6)

2019-05-26 20:52

例:

/* Forces the TIM2 Output Compare 3 signal to the active level */ TIM_ForcedOC3Config(TIM2, TIM_ForcedAction_Active); 函数原型如下:

void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) {

u16 tmpccmr2 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction));

tmpccmr2 = TIMx->CCMR2;

/* Reset the OC1M Bits */

tmpccmr2 &= CCMR_OC13M_Mask;//CCMR2.bit6-4

/* Configure The Forced output Mode */

tmpccmr2 |= TIM_ForcedAction;//无效电平?高电平?

/* Write to TIMx CCMR2 register */ TIMx->CCMR2 = tmpccmr2; }

19.2.24 函数TIM_ForcedOC4Config

Table 506. 函数 TIM_ForcedOC4Config 函数名 TIM_ForcedOC4Config 函数原形 void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) 功能描述 置TIMx输出4为活动或非活动电平 输入参数1 TIMx:x可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_ForcedAction:输出信号的设置动作 参阅Section:TIM_ForcedAction查阅更多该参数允许取值范围 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_ForcedAction:输出信号的动作设置。【同TIM_ForcedOC1Config】 参数TIM_ForcedAction值 描述/CCMR. OCyM[2:0]/bit #define值 备注 TIM_ForcedAction_Active 置为OCxREF上的活动电平 0x0050 强制高电平 TIM_ForcedAction_InActive 置为OCxREF上的非活动电平 0x0040 强制低电平[无效] 例: /* Forces the TIM2 Output Compare 4 signal to the active level */ TIM_ForcedOC4Config(TIM2, TIM_ForcedAction_Active); 函数原型如下:

void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) {

u16 tmpccmr2 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); tmpccmr2 = TIMx->CCMR2;

/* Reset the OC2M Bits */

tmpccmr2 &= CCMR_OC24M_Mask;//0x8FFF,CCMR2

/* Configure The Forced output Mode */

tmpccmr2 |= (u16)(TIM_ForcedAction << 8);//OC4再OC3的高8位处

/* Write to TIMx CCMR2 register */ TIMx->CCMR2 = tmpccmr2; }

19.2.25 函数TIM_ARRPreloadConfig

Table 507. 函数TIM_ARRPreloadConfig 函数名 TIM_ARRPreloadConfig 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数

void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState Newstate) 使能或失能TIMx在ARR上的预装载寄存器 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 NewState: TIM_CR1寄存器ARPE位的新状态 无 无 无 无 例:

/* Enables the TIM2 Preload on ARR Register */ TIM_ARRPreloadConfig(TIM2, ENABLE); 函数原型如下:

void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState) {

/* Check the parameters */

assert_param(IS_TIM_ALL_PERIPH(TIMx));

assert_param(IS_FUNCTIONAL_STATE(NewState));

if (NewState != DISABLE) {

/* Set the ARR Preload Bit */

TIMx->CR1 |= CR1_ARPE_Set;//=0x0080 } else {

/* Reset the ARR Preload Bit */

TIMx->CR1 &= CR1_ARPE_Reset;//=0x037F(bit15-10保留,保持为0) } }

19.2.26 函数TIM_SelectCCDMA

Table 508. 函数TIM_SelectCCDMA 函数名 TIM_SelectCCDMA 函数原形 void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState Newstate) 功能描述 选择TIMx外设的捕获/比较DMA源 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数2 NewState: 捕获比较DMA源的新状态 输出参数 无 返回值 无 先决条件 无 被调用函数 无 例:

/* Selects the TIM2 Capture Compare DMA source */ TIM_SelectCCDMA(TIM2, ENABLE); 函数原型如下:

void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState) {

/* Check the parameters */

assert_param(IS_TIM_18_PERIPH(TIMx));//???T2-5都有CR2 assert_param(IS_FUNCTIONAL_STATE(NewState));

if (NewState != DISABLE) {

/* Set the COM Bit *///(若CCUS是预装载的(CCPC=1),可以通过设置COM位或TRGI上的一个上升沿更新它们) TIMx->CR2 |= CR2_CCUS_Set; //#define CR2_CCUS_Set ((u16)0x0004)//CR2.bit3=CCUS } else {

/* Reset the COM Bit *///若CCUS是预装载的(CCPC=1),只能通过设置COM位更新它们 TIMx->CR2 &= CR2_CCUS_Reset; //#define CR2_CCUS_Reset ((u16)0xFFFB) } }

19.2.27 函数TIM_OC1PreloadConfig

Table 509. 函数TIM_OC1PreloadConfig 函数名 TIM_OC1PreloadConfig 函数原形 void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 功能描述 使能或失能TIMx在CCR1上的预装载寄存器 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_OCPreload:输出比较预装载状态 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_OCPreload :输出比较预装载状态可以使能或者失能如下表。 Table 510. TIM_OCPreload值 参数TIM_OCPreload值 描述/CCMR1.OCyPE/bit3 #define值 TIM_OCPreload_Enable TIMx在CCR1上的预装载寄存器使能 0x0008 TIM_OCPreload_Disable TIMx在CCR1上的预装载寄存器失能 0x0000 例:

/* Enables the TIM2 Preload on CC1 Register */

TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable); 函数原型如下:

void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) {

u16 tmpccmr1 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));

tmpccmr1 = TIMx->CCMR1;

/* Reset the OC1PE Bit */

tmpccmr1 &= CCMR_OC13PE_Reset;//0xFFF7,bit3

/* Enable or Disable the Output Compare Preload feature */ tmpccmr1 |= TIM_OCPreload;

/* Write to TIMx CCMR1 register */ TIMx->CCMR1 = tmpccmr1; }

19.2.28 函数TIM_OC2PreloadConfig

Table 511. 函数TIM_OC2PreloadConfig 函数名 TIM_OC2PreloadConfig 函数原形 void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 功能描述 使能或失能TIMx在CCR2上的预装载寄存器 输入参数 1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数 2 TIM_OCPreload:输出比较 预载状态 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_OCPreload:输出比较 预载状态【同TIM_OC1PreloadConfig】 参数TIM_OCPreload值 描述/CCMR1.OCyPE/bit3 #define值 TIM_OCPreload_Enable TIMx在CCR1上的预装载寄存器使能 0x0008 TIM_OCPreload_Disable TIMx在CCR1上的预装载寄存器失能 0x0000 例: /* Enables the TIM2 Preload on CC2 Register */ TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); 函数原型如下:

void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) {

u16 tmpccmr1 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));

tmpccmr1 = TIMx->CCMR1;

/* Reset the OC2PE Bit */

tmpccmr1 &= CCMR_OC24PE_Reset;//bit11,0xF7FF

/* Enable or Disable the Output Compare Preload feature */

tmpccmr1 |= (u16)(TIM_OCPreload << 8);//CCMR1_OC2PE 比 CCMR1_OC1PE高8位

/* Write to TIMx CCMR1 register */ TIMx->CCMR1 = tmpccmr1; }

19.2.29 函数TIM_OC3PreloadConfig

Table 512. 函数TIM_OC3PreloadConfig 函数名 TIM_OC3PreloadConfig 函数原形 void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 功能描述 使能或失能 TIMx在CCR3上的预装载寄存器 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_OCPreload:输出比较预装载状态 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_OCPreload:输出比较 预载状态【同TIM_OC1PreloadConfig】 参数TIM_OCPreload值 描述/CCMR1.OCyPE/bit3 #define值 TIM_OCPreload_Enable TIMx在CCR1上的预装载寄存器使能 0x0008 TIM_OCPreload_Disable TIMx在CCR1上的预装载寄存器失能 0x0000 例:

/* Enables the TIM2 Preload on CC3 Register */ TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable); 函数原型如下:

void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) {

u16 tmpccmr2 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));

tmpccmr2 = TIMx->CCMR2;

/* Reset the OC3PE Bit */

tmpccmr2 &= CCMR_OC13PE_Reset;//0xFFF7,CCMR2

/* Enable or Disable the Output Compare Preload feature */ tmpccmr2 |= TIM_OCPreload;

/* Write to TIMx CCMR2 register */ TIMx->CCMR2 = tmpccmr2; }

19.2.30 函数TIM_OC4PreloadConfig

Table 513. 函数TIM_OC4PreloadConfig 函数名 TIM_OC4PreloadConfig 函数原形 void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 功能描述 使能或者失能TIMx在CCR4上的预装载寄存器 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 TIM_OCPreload:输出比较预装载状态 输入参数2 参阅Section:TIM_OCPreload查阅更多该参数允许取值范围 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_OCPreload:输出比较 预载状态【同TIM_OC1PreloadConfig】 参数TIM_OCPreload值 描述/CCMR1.OCyPE/bit3 TIM_OCPreload_Enable TIMx在CCR1上的预装载寄存器使能 TIM_OCPreload_Disable TIMx在CCR1上的预装载寄存器失能 例:

/* Enables the TIM2 Preload on CC4 Register */ TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable); 函数原型如下:

void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) {

u16 tmpccmr2 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));

tmpccmr2 = TIMx->CCMR2;

/* Reset the OC4PE Bit */

tmpccmr2 &= CCMR_OC24PE_Reset;//CCMR2,0xF7FF

/* Enable or Disable the Output Compare Preload feature */

tmpccmr2 |= (u16)(TIM_OCPreload << 8); //CCMR_OC4PE比 CCMR_OC3PE高8位

/* Write to TIMx CCMR2 register */ TIMx->CCMR2 = tmpccmr2; }

#define值 0x0008 0x0000 19.2.31 函数TIM_OC1FastConfig

Table 514. 函数TIM_OC1FastConfig 函数名 TIM_OC1FastConfig 函数原形 void TIM_OC1FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) 功能描述 设置TIMx捕获比较1快速特征 输入参数 1 TIMx:x 可以是1,2,3,4,5,8,来选择TIM外设 输入参数 2 TIM_OCFast:输出比较快速特征状态 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_OCFast :输出比较快速特征性能可以使能或者失能。 TIM_OCFast 描述 #define值 TIM_OCFast_Enable TIMx输出比较快速特征性能使能 0x0004 TIM_OCFast_Disable TIMx输出比较快速特征性能失能 0x0000 例:

/* Use the TIM2 OC1 in fast Mode */

TIM_OC1FastConfig(TIM2, TIM_OCFast_Enable); 函数原型如下:

void TIM_OC1FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) {

u16 tmpccmr1 = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast));

/* Get the TIMx CCMR1 register value */ tmpccmr1 = TIMx->CCMR1;

/* Reset the OC1FE Bit */

tmpccmr1 &= CCMR_OC13FE_Reset;//0xFFFB,CCMR1.bit2// =1时,OCFE只在通道被配置成PWM1或PWM2模式时起作用

/* Enable or Disable the Output Compare Fast Bit */


STM32F10x_TIM(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车理论试卷青岛理工大学2016年上学期(汽服、车辆专业)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: