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

已邀请:

admin

赞同来自: lufei

HAL_TIM_PWM_ConfigChannel
HAL_TIM_PWM_Start

中子星

赞同来自:

while (1)
{
/ USER CODE END WHILE /
HAL_Delay(15);

/ USER CODE BEGIN 3 /
if(led_fx==1)
{
led_dt++;


}
else
{

led_dt--;


}
if(led_dt>99) led_fx=0;
if(led_dt==0) led_fx=1;

TIM2->CCR1=led_dt;


}
我这样实现了一个呼吸灯,HAL_TIM_PWM_ConfigChannel能代替TIM2->CCR1=led_dt; 这句?

中子星

赞同来自:

HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef htim, TIM_OC_InitTypeDef sConfig, uint32_t Channel)

感觉只是修改CCR1的值,用这个函数这么麻烦吗?

中子星

赞同来自:

void MX_TIM2_Init(void)
{

TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;

htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 100-1;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim2);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig);

HAL_TIM_PWM_Init(&htim2);

sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);

sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 100;
sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);我已经有了配置了这个函数了,就是想学老版本库里面的TIM_SetCompare2这个函数来动态修改CCR1的值。看来还得自己写了吧,是没有吧?
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

}

tsun

赞同来自:

__HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__)

中子星

赞同来自:

__HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__)

这个是自己做的?

tsun

赞同来自:

no, hal driver offers this "marco"
you can find it from "stm32f4xx_hal_tim.h"

中子星

赞同来自:

"marco" 不明白呀,这是啥

【福清】Paderboy

赞同来自:

同问__HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__) 怎么使用?

中子星

赞同来自: lufei

找了一圈没这个函数

【福清】Paderboy

赞同来自:

库里有define,但是不知道怎么调用。

tsun

赞同来自: 【福清】Paderboy

sConfigOC.Pulse = 100;
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1)


------> __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 100);

绿色&浪漫

赞同来自:

HAL_StatusTypeDef  HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim),hal库里面是这样定义的,然后我调用的时候显示错误,请问这个函数怎么调用?

要回复问题请先登录注册