STM32
直播中

万航渡路

8年用户 1319经验值
擅长:电源/新能源
私信 关注
[问答]

老版本库的TIM_SetCompare2(TIM2, TIMCompare2);函数,在HAL里面对应的是那个函数?

老版本库的tiM_SetCompare2(TIM2, TIMCompare2);函数,在HAL里面对应的是那个函数?
老版本库的TIM_SetCompare2(TIM2, TIMCompare2);函数,在HAL里面对应的是那个函数?

做PWM的可调输出,以前老版本的动态调用这个函数就改变CCR1的值了,HAL库里面死活找不了

回帖(1)

杨福林

2024-5-15 16:42:50
在STM32的HAL库中,老版本库的TIM_SetCompare2(TIM2, TIMCompare2);函数对应的是HAL_TIM_ConfigOCrefClear()和HAL_TIM_PWM_ConfigChannel()函数。

首先,您需要初始化定时器并配置PWM模式。然后,使用HAL_TIM_ConfigOCrefClear()函数来配置输出比较清除。最后,使用HAL_TIM_PWM_ConfigChannel()函数来设置PWM通道的占空比。

以下是一个示例代码,展示了如何在HAL库中实现老版本库中的TIM_SetCompare2(TIM2, TIMCompare2)函数的功能:

```c
// 初始化定时器
TIM_HandleTypeDef htim2;
htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 999;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim2);

// 配置PWM模式
TIM_OC_InitTypeDef sConfigOC = {0};
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 500; // 设置占空比
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);

// 配置输出比较清除
HAL_TIM_ConfigOCrefClear(&htim2, TIM_CLEAR_INPUT_ETR);
```

在这个示例中,我们首先初始化了TIM2定时器,然后配置了PWM模式,并设置了占空比。最后,我们配置了输出比较清除。这样,您就可以在HAL库中实现老版本库中的TIM_SetCompare2(TIM2, TIMCompare2)函数的功能了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分