本文整理汇总了C++中HAL_TIM_PWM_ConfigChannel函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL_TIM_PWM_ConfigChannel函数的具体用法?C++ HAL_TIM_PWM_ConfigChannel怎么用?C++ HAL_TIM_PWM_ConfigChannel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HAL_TIM_PWM_ConfigChannel函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: setPWMHeaterValue
/** \brief 设置加热PWM值
*
* \param index uint8_t 0-ex1; 1-bed; 2-ex2; 3-ex3
* \return uint16_t
*/
void setPWMHeaterValue(uint8_t index, uint8_t value)
{
TIM_OC_InitTypeDef TIM_InitStruct;
TIM_InitStruct.OCMode = TIM_OCMODE_PWM1;
TIM_InitStruct.OCPolarity = TIM_OCPOLARITY_HIGH;
TIM_InitStruct.OCFastMode = TIM_OCFAST_DISABLE;
TIM_InitStruct.Pulse = (uint32_t)value;
if (index == 0){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_1);
}
#ifdef HEATBED_ENABLED
else if (index == 1){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_2);
}
#endif
#ifdef EXTRUDER_2_ENABLED
else if (index == 2){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_3);
}
#endif
#ifdef EXTRUDER_3_ENABLED
else if (index == 3){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_4);
}
#endif
}
开发者ID:RennWang,项目名称:JawsFromMarlin,代码行数:33,代码来源:Temperature.cpp
示例2: Steer_Pwm_Init
/**
* @brief 初始化舵机PWM.
* @param None
* @retval None
*/
void Steer_Pwm_Init(void){
//B0引脚定义
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_TIM3_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//C7引脚定义
__HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//TIM3
TimHandleT3.Instance = TIM3;
TimHandleT3.Init.Period = 1000 - 1;;
TimHandleT3.Init.Prescaler = 1680-1;
TimHandleT3.Init.ClockDivision = 0;
TimHandleT3.Init.CounterMode = TIM_COUNTERMODE_UP;
HAL_TIM_PWM_Init(&TimHandleT3);
pwmConfig.OCMode=TIM_OCMODE_PWM1;
pwmConfig.Pulse=79;
HAL_TIM_PWM_ConfigChannel(&TimHandleT3, &pwmConfig, TIM_CHANNEL_2);
HAL_TIM_PWM_ConfigChannel(&TimHandleT3, &pwmConfig, TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&TimHandleT3, TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&TimHandleT3, TIM_CHANNEL_2);
}
开发者ID:photon0414,项目名称:Balance_Car_STM32,代码行数:38,代码来源:function.c
示例3: LBF_PWM4_Ch34_Init
/*******************************************************************************
* @brief : Initialise and configure PWM of a Timer
* @param : Aucun.
* @return : Rien.
******************************************************************************/
void LBF_PWM4_Ch34_Init ( void )
{
// Derived from Cube MX code and STM32L152 project example in Cube Library package
// To set Prescaler and Pulse values:
// Prescaler = (TIMxCLK / Prescaled clock) - 1
// ARR Period = (Prescaled clock / Target PWM Fqcy) - 1
// TIM2 Channely duty cycle = (TIMx_CCRy/ TIMx_ARR + 1)* 100%
TIM_OC_InitTypeDef sConfigOC; // or NEEDS TO BE GLOBAL ????
// First, confirgure the TIM (timer) peripheral
htim4.Instance = TIM4;
htim4.Init.Prescaler = (HAL_RCC_GetPCLK1Freq()/1000000) - 1; // so prescaled clock always 1MHz
// Caution: TIM4CLK is 1x PCLK2 if APB1 prescaler=1 else is 2x -- see STM32 UserMan
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 0 ; // Initial Value, Target Value to be set by Application
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // ie no division
HAL_TIM_PWM_Init(&htim4);
// Second, configure the PWM channel
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0 ; // Initial Value, Target Value to be set by Application
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3);
sConfigOC.Pulse = 0 ; // Initial Value, Target Value to be set by Application
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4);
}
开发者ID:OlivierGrenoble,项目名称:LBF-V2-SW-WIP,代码行数:39,代码来源:LBF_PWM4_Ch34_Init.c
示例4: SC_TIM3_Init
/* TIM3 init function */
void SC_TIM3_Init(SERVO_CONTROLLER_Frequency frequency)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;
htim3.Instance = TIM3;
htim3.Init.Prescaler = CORE_FCLK / TIM_FCLK - 1;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = (uint16_t)(TIM_FCLK / frequency); //should not exceed 0xFFFF
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim3);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig);
HAL_TIM_PWM_Init(&htim3);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2);
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);
}
开发者ID:itsergeyla,项目名称:Quadruped,代码行数:35,代码来源:ServoController.c
示例5: MX_TIM9_Init
/* TIM9 init function */
void MX_TIM9_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_OC_InitTypeDef sConfigOC;
htim9.Instance = TIM9;
htim9.Init.Prescaler = 167;
htim9.Init.CounterMode = TIM_COUNTERMODE_UP;
htim9.Init.Period = 19999;
htim9.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim9);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim9, &sClockSourceConfig);
HAL_TIM_PWM_Init(&htim9);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 1500;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim9, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&htim9, &sConfigOC, TIM_CHANNEL_2);
}
开发者ID:dokor,项目名称:RobotCarto,代码行数:27,代码来源:tim.c
示例6: MX_TIM2_Init
/* TIM2 init function */
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 = 47;
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 = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4);
HAL_TIM_MspPostInit(&htim2);
}
开发者ID:yingwang88,项目名称:StmSmoke,代码行数:35,代码来源:main.c
示例7: pwmout_write
void pwmout_write(pwmout_t* obj, float value) {
TIM_OC_InitTypeDef sConfig;
TimHandle.Instance = (TIM_TypeDef *)(obj->pwm);
if (value < (float)0.0) {
value = 0.0;
} else if (value > (float)1.0) {
value = 1.0;
}
obj->pulse = (uint32_t)((float)obj->period * value);
sConfig.OCMode = TIM_OCMODE_PWM1;
sConfig.OCFastMode = TIM_OCFAST_DISABLE;
sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfig.Pulse = obj->pulse;
if (obj->pin == PB_3) {
HAL_TIM_PWM_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&TimHandle, TIM_CHANNEL_2);
}
if ((obj->pin == PB_4) || (obj->pin == PB_6)) {
HAL_TIM_PWM_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&TimHandle, TIM_CHANNEL_1);
}
}
开发者ID:brain5lug,项目名称:mbed-for-baremetal-qtcreator,代码行数:28,代码来源:pwmout_api.c
示例8: init
void Fan::setSpeed(uint8_t fanspeed)
{
if (fan_init != 1){
init();
fan_init = 1;
}
TIM_OC_InitTypeDef TIM_InitStruct;
TIM_InitStruct.OCMode = TIM_OCMODE_PWM1;
TIM_InitStruct.OCPolarity = TIM_OCPOLARITY_HIGH;
TIM_InitStruct.OCFastMode = TIM_OCFAST_DISABLE;
TIM_InitStruct.Pulse = (uint32_t)fanspeed * 257;
fan_speed = fanspeed;
if (fan_index == 0){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&TIM_PWM_HandleStruct, TIM_CHANNEL_1);
// HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_3);
// HAL_TIM_PWM_Start(&TIM_PWM_HandleStruct, TIM_CHANNEL_3);
}
else if (fan_index == 1){
HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&TIM_PWM_HandleStruct, TIM_CHANNEL_2);
}
}
开发者ID:RennWang,项目名称:JawsFromMarlin,代码行数:27,代码来源:Fan.cpp
示例9: MX_TIM4_Init
/* TIM4 init function */
void MX_TIM4_Init(void)
{
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;
htim4.Instance = TIM4;
htim4.Init.Prescaler = 49;
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 19999;
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&htim4);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2);
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3);
HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4);
}
开发者ID:cjackie,项目名称:Quadcopter-Flight-Controller,代码行数:31,代码来源:main.c
示例10: motorsbsp_init
void motorsbsp_init(void)
{
MOTORS_CLK;
// Configura os GPIOs do drive dos motores como sa�das push/pull
GPIO_InitTypeDef GPIO_InitStructure;
for (int i = 0; i < N_PINS; i++)
{
GPIO_InitStructure.Pin = MOTORES_PIN[i];
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(MOTORES_PORT[i], &GPIO_InitStructure);
}
HAL_GPIO_WritePin(STBY_PORT, STBY_PIN, GPIO_PIN_SET);
// Configura os GPIOs de PWM como Alternate Function
GPIO_InitStructure.Pin = L_PWM_PIN;
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.Pull = GPIO_NOPULL;
GPIO_InitStructure.Speed = GPIO_SPEED_FAST;
GPIO_InitStructure.Alternate = PWM_AF_TIM;
HAL_GPIO_Init(L_PWM_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = R_PWM_PIN;
HAL_GPIO_Init(R_PWM_PORT, &GPIO_InitStructure);
// Time base PWM COnfig
// PWMf: f = [(168M / 2) / (PS + 1) ] / T
//TIM4 connected on APB1 and prescaller is 4 (the minimal!!) -> Pag. 67 - Reference Manual
/* (168M/4) */
// timer_tick_frequency = Timer_default_frequency / (prescaller_set + 1)
// ttf = 10500000
// PWM_frequency = (timer_tick_frequency / (TIM_Period + 1))
// PWMf = 10500
TimHandle.Instance = PWM_TIM;
TimHandle.Init.Period = PWM_PERIOD;
TimHandle.Init.Prescaler = PWM_PRESCALER;
TimHandle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
HAL_TIM_PWM_Init(&TimHandle);
// Output Compare - PWM
// TIM_Period = timer_tick_frequency / PWM_frequency - 1
// TIM_Period = 10500000 / 10500 = 1000
TIM_OC_InitTypeDef sConfig;
sConfig.OCMode = TIM_OCMODE_PWM1;
sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfig.OCFastMode = TIM_OCFAST_DISABLE;
sConfig.Pulse = 999;
HAL_TIM_PWM_ConfigChannel(&TimHandle, &sConfig, L_PWM_CHANNEL);
HAL_TIM_PWM_ConfigChannel(&TimHandle, &sConfig, R_PWM_CHANNEL);
HAL_TIM_PWM_Start(&TimHandle, L_PWM_CHANNEL);
HAL_TIM_PWM_Start(&TimHandle, R_PWM_CHANNEL);
}
开发者ID:Felipeasg,项目名称:lf_lite_plus,代码行数:56,代码来源:motorsbsp.c
示例11: POLOLU_MOTOR_Run_InIn
void POLOLU_MOTOR_Run_InIn(DRIVER_InitTypeDef *driver, MOTOR_InitTypeDef *motor, uint32_t mode, uint32_t speed)
{
if (mode == MOTOR_IN_IN_BREAK)
{
POLOLU_MOTOR_Break_InIn(driver, motor);
return;
}
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
switch (mode)
{
case MOTOR_IN_IN_COAST:
HAL_TIM_PWM_Stop(motor->htimIn1, motor->ChannelIn1);
HAL_TIM_PWM_Stop(motor->htimIn2, motor->ChannelIn2);
motor->GPIOxIn1->BSRR = (uint32_t)(motor->PinIn1) << 16;
motor->GPIOxIn2->BSRR = (uint32_t)(motor->PinIn2) << 16;
break;
case MOTOR_IN_IN_REVERSE_COAST:
HAL_TIM_PWM_Stop(motor->htimIn1, motor->ChannelIn1);
motor->GPIOxIn1->BSRR = (uint32_t)(motor->PinIn1) << 16;
sConfigOC.Pulse = count_pulse(motor->htimIn2->Init.Period, speed);
HAL_TIM_PWM_ConfigChannel(motor->htimIn2, &sConfigOC, motor->ChannelIn2);
HAL_TIM_MspPostInit(motor->htimIn2);
HAL_TIM_PWM_Start(motor->htimIn2, motor->ChannelIn2);
break;
case MOTOR_IN_IN_FORWARD_COAST:
HAL_TIM_PWM_Stop(motor->htimIn2, motor->ChannelIn2);
motor->GPIOxIn2->BSRR = (uint32_t)(motor->PinIn2) << 16;
sConfigOC.Pulse = count_pulse(motor->htimIn1->Init.Period, speed);
HAL_TIM_MspPostInit(motor->htimIn1);
HAL_TIM_PWM_Start(motor->htimIn1, motor->ChannelIn2);
break;
case MOTOR_IN_IN_REVERSE:
HAL_TIM_PWM_Stop(motor->htimIn2, motor->ChannelIn2);
motor->GPIOxIn2->BSRR = motor->PinIn2;
sConfigOC.Pulse = count_pulse(motor->htimIn1->Init.Period, speed);
HAL_TIM_MspPostInit(motor->htimIn1);
HAL_TIM_PWM_Start(motor->htimIn1, motor->ChannelIn2);
break;
case MOTOR_IN_IN_FORWARD:
HAL_TIM_PWM_Stop(motor->htimIn1, motor->ChannelIn1);
motor->GPIOxIn1->BSRR = motor->PinIn1;
sConfigOC.Pulse = count_pulse(motor->htimIn2->Init.Period, speed);
HAL_TIM_PWM_ConfigChannel(motor->htimIn2, &sConfigOC, motor->ChannelIn2);
HAL_TIM_MspPostInit(motor->htimIn2);
HAL_TIM_PWM_Start(motor->htimIn2, motor->ChannelIn2);
}
}
开发者ID:kyberpunk,项目名称:Robot,代码行数:52,代码来源:pololu_drv8835.c
示例12: Motors_stop
/**********************************************************
* @brief Motors_stop
* @param Direction and speed of the motor (0 to 100)
* @retval None
**********************************************************/
void Motors_stop(void)
{
TIMER_OC_InitStruct.Pulse = 0;
HAL_TIM_PWM_ConfigChannel(&TIMER_InitStruct, &TIMER_OC_InitStruct, TIM_CHANNEL_3);
HAL_TIM_PWM_ConfigChannel(&TIMER_InitStruct, &TIMER_OC_InitStruct, TIM_CHANNEL_4);
HAL_TIM_PWM_Start(&TIMER_InitStruct,TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&TIMER_InitStruct,TIM_CHANNEL_4);
s_motorRight.speed = 0;
s_motorLeft.speed = 0;
}
开发者ID:macerobotics,项目名称:MRPi1,代码行数:18,代码来源:Motors.c
示例13: pwm_set
void pwm_set(PWM_NAME pwm, int32_T val)
{
int32_T period = 0;
/* 参数检查 */
if(pwm > PWM_MAX)
{
ERR_STR("参数错误.");
}
/* 限制val在有效值范围内 [0,period] */
period = pwm_get_period();
if(val < 0)
{
val = 0;
}
if(val > period)
{
val = period;
}
/* 修改占空比 */
s_sConfig.Pulse = val;
if (HAL_TIM_PWM_ConfigChannel(&s_tim_handle, &s_sConfig, g_pwm_ch_list[pwm].ch) != HAL_OK)
{
ERR_STR("执行失败.");
}
/* 启动PWM */
if (HAL_TIM_PWM_Start(&s_tim_handle, g_pwm_ch_list[pwm].ch) != HAL_OK)
{
ERR_STR("执行失败.");
}
}
开发者ID:yougukepp,项目名称:flyer,代码行数:34,代码来源:pwm.c
示例14: POLOLU_MOTOR_Run_EnablePhase
void POLOLU_MOTOR_Run_EnablePhase(DRIVER_InitTypeDef *driver, MOTOR_InitTypeDef *motor, uint32_t mode, uint32_t speed)
{
switch (mode)
{
case MOTOR_ENABLE_PHASE_FORWARD:
motor->GPIOxIn1->BSRR = motor->PinIn1;
break;
case MOTOR_ENABLE_PHASE_REVERSE:
motor->GPIOxIn1->BSRR = (uint32_t)(motor->PinIn1) << 16;
break;
case MOTOR_ENABLE_PHASE_BREAK:
POLOLU_MOTOR_Break_EnablePhase(driver, motor);
return;
}
uint32_t pulse = count_pulse(motor->htimIn2->Init.Period, speed);
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = pulse;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;
HAL_TIM_PWM_ConfigChannel(motor->htimIn2, &sConfigOC, motor->ChannelIn2);
HAL_TIM_MspPostInit(motor->htimIn2);
HAL_TIM_PWM_Start(motor->htimIn2, motor->ChannelIn2);
}
开发者ID:kyberpunk,项目名称:Robot,代码行数:26,代码来源:pololu_drv8835.c
示例15: MX_TIM10_Init
/* TIM10 init function */
void MX_TIM10_Init(void)
{
TIM_OC_InitTypeDef sConfigOC;
htim10.Instance = TIM10;
htim10.Init.Prescaler = 0;
htim10.Init.CounterMode = TIM_COUNTERMODE_UP;
htim10.Init.Period = 0;
htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if (HAL_TIM_Base_Init(&htim10) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim10) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
HAL_TIM_MspPostInit(&htim10);
}
开发者ID:RoboSec,项目名称:rs_sensor_board,代码行数:32,代码来源:tim.c
示例16: MX_TIM3_Init
/* TIM3 init function */
void MX_TIM3_Init(void)
{
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;
uint32_t uhPrescalerValue = (uint32_t) ((SystemCoreClock /2) / 1300) - 1;
htim3.Instance = TIM3;
htim3.Init.Prescaler = uhPrescalerValue;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = PERIOD_VALUE;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&htim3);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = PULSE1_VALUE;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_MspPostInit(&htim3);
}
开发者ID:hlmpost,项目名称:st-nordic-3-11,代码行数:29,代码来源:tim.c
示例17: MX_TIM4_Init
/* TIM4 init function */
void MX_TIM4_Init(DeviceConfig *x)
{
HAL_TIM_PWM_Init(&(x->htim4));
HAL_TIM_OC_Init(&(x->htim4));
HAL_TIMEx_MasterConfigSynchronization(&(x->htim4),&(x->sTIMMasterConfig));
HAL_TIM_PWM_ConfigChannel(&(x->htim4), &(x->TIMConfigOC1), TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&(x->htim4), &(x->TIMConfigOC2), TIM_CHANNEL_2);
HAL_TIM_PWM_ConfigChannel(&(x->htim4), &(x->TIMConfigOC3), TIM_CHANNEL_3);
HAL_TIM_PWM_ConfigChannel(&(x->htim4), &(x->TIMConfigOC4), TIM_CHANNEL_4);
HAL_TIM_MspPostInit(&(x->htim4));
}
开发者ID:LabAdaptive,项目名称:MicroKit,代码行数:17,代码来源:tim.c
示例18: updatePulseWidth
void updatePulseWidth(eTimer timer, uint32_t pulse, uint32_t channel)
{
TIM_OC_InitTypeDef outputChannelInit = {0,};
outputChannelInit.OCMode = TIM_OCMODE_PWM1;
outputChannelInit.Pulse = pulse;
outputChannelInit.OCPolarity = TIM_OCPOLARITY_HIGH;
outputChannelInit.OCFastMode = TIM_OCFAST_DISABLE;
outputChannelInit.OCIdleState = TIM_OCIDLESTATE_SET;
//HAL_TIM_PWM_Start_IT(&handleTimer4);
switch(timer)
{
case eTimer4:
HAL_TIM_PWM_ConfigChannel(&handleTimer4, &outputChannelInit, channel);
HAL_TIM_PWM_Start(&handleTimer4, channel);
break;
case eTimer1:
case eTimer2:
case eTimer3:
default:
break;
}
return;
}
开发者ID:Lee-apollo,项目名称:plotter_stm32,代码行数:26,代码来源:hwTimer.c
示例19: MX_TIM5_Init
/* TIM5 init function */
void MX_TIM5_Init(void)
{
TIM_MasterConfigTypeDef sMasterConfig;
TIM_IC_InitTypeDef sConfigIC;
TIM_OC_InitTypeDef sConfigOC;
htim5.Instance = TIM5;
htim5.Init.Prescaler = 0;
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
htim5.Init.Period = 8400000 * 5; // 500 ms
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_IC_Init(&htim5);
HAL_TIM_PWM_Init(&htim5);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig);
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 840;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2);
HAL_TIM_MspPostInit(&htim5);
}
开发者ID:Vadim-Stupakov,项目名称:ProjectX,代码行数:35,代码来源:tim.c
示例20: vHardwareTimerPwmSetup
void vHardwareTimerPwmSetup(
TIM_HandleTypeDef* xTimerHandle,
TIM_OC_InitTypeDef* xTimerPwmConfig,
uint8_t usChannel,
uint8_t usPolarity,
uint32_t ulPulseValue)
{
/* Configure PWM action */
xTimerPwmConfig->OCMode = TIM_OCMODE_PWM1;
xTimerPwmConfig->OCPolarity = usPolarity;
xTimerPwmConfig->OCFastMode = TIM_OCFAST_DISABLE;
xTimerPwmConfig->Pulse = ulPulseValue;
/* Configure PWM */
if(HAL_TIM_PWM_ConfigChannel(xTimerHandle, xTimerPwmConfig, usChannel) != HAL_OK)
{
/* Configuration Error */
vErrorFatal(__LINE__, __FILE__, "Unable to init PWM");
}
/* Start PWM generation */
if(HAL_TIM_PWM_Start(xTimerHandle, usChannel) != HAL_OK)
{
/* Configuration Error */
vErrorFatal(__LINE__, __FILE__, "Unable to init PWM");
}
}
开发者ID:ccccjason,项目名称:amass,代码行数:28,代码来源:hardware.c
注:本文中的HAL_TIM_PWM_ConfigChannel函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论