新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2020-10-28
- 在线时间
- 2 小时
|
以下是我的TIM9的程序:请大家帮助
void TIM4_PWM_Init(u16 arr,u16 psc)
{
TIM_Handler.Instance = TIM9; //定时器9
TIM_Handler.Init.Prescaler = psc; //定时器分频 45,得到 90M/45=2M 时钟
TIM_Handler.Init.CounterMode = TIM_COUNTERMODE_UP; //向上计数模式
TIM_Handler.Init.Period = arr; //自动重装载值 5000,得到PWM频率 2M/5k=400Hz
TIM_Handler.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&TIM_Handler); //初始化PWM
TIM_CHxHandler.OCMode = TIM_OCMODE_PWM1; //模式选择PWM1
TIM_CHxHandler.Pulse = 0; //设置比较值,此值用来确定占空比,默认为0
TIM_CHxHandler.OCPolarity = TIM_OCPOLARITY_HIGH; //输出比较极性为高
HAL_TIM_PWM_ConfigChannel(&TIM_Handler,&TIM_CHxHandler,TIM_CHANNEL_1); //配置TIM3通道1
HAL_TIM_PWM_Start(&TIM_Handler, TIM_CHANNEL_1); //开启PWM通道1
HAL_TIM_PWM_ConfigChannel(&TIM_Handler,&TIM_CHxHandler,TIM_CHANNEL_2); //配置TIM3通道2
HAL_TIM_PWM_Start(&TIM_Handler, TIM_CHANNEL_2); //开启PWM通道2
TIM9->CCR2=350;
TIM9->CCR1=350;
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
__HAL_RCC_TIM9_CLK_ENABLE(); //使能定时器4------改------------------------------
__HAL_RCC_GPIOE_CLK_ENABLE(); //开启GPIOB时钟----改------------------------------
GPIO_Initure.Pin=GPIO_PIN_5|GPIO_PIN_6; //PB1
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
GPIO_Initure.Alternate= GPIO_AF3_TIM9; //PB1复用为TIM3_CH4
HAL_GPIO_Init(GPIOE,&GPIO_Initure);//--IO口复用映射--------------------------------------------
}
|
|