新手入门
- 积分
- 6
- 金钱
- 6
- 注册时间
- 2022-1-21
- 在线时间
- 1 小时
|
发表于 2022-1-21 12:59:22
|
显示全部楼层
本帖最后由 weiwei123321 于 2022-1-21 13:00 编辑
// 触发ADC完成指定频率模拟采集
// APB1主频最大54Mhz-定时器倍频108Mhz-预分频系数20-自动重装值为5021 定时周期为976.5us 一秒1024Hz
void MX_TIM2_Init(void)
{
__HAL_RCC_TIM2_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM2_IRQn, 1, 3);
HAL_NVIC_EnableIRQ(TIM2_IRQn);
TIM2_Handler.Instance = TIM2; // 使能定时器2
TIM2_Handler.Init.Prescaler = 20 ; // 预分频 时钟108 Mhz / 10800 = 10000K
TIM2_Handler.Init.CounterMode = TIM_COUNTERMODE_UP; // 向上计数模式
TIM2_Handler.Init.Period = 5021; // 自动装载值 5000是500ms 10 是1ms
TIM2_Handler.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // 时钟分频因子
HAL_TIM_PWM_Init(&TIM2_Handler);
TIM2_CH2Handler.OCMode = TIM_OCMODE_PWM1; // 选择PWM1模式
TIM2_CH2Handler.Pulse = 2510 ; // 设置比较值用来确认占空比 50%
// Period / Pulse = 占空比 50%
TIM2_CH2Handler.OCPolarity = TIM_OCPOLARITY_HIGH; // 输出比较极性为高
TIM2_CH2Handler.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&TIM2_Handler, &TIM2_CH2Handler, TIM_CHANNEL_2) ;
__HAL_TIM_ENABLE_IT(&TIM2_Handler, TIM_IT_UPDATE);
TIM_CCxChannelCmd(TIM2_Handler.Instance, TIM_CHANNEL_2, TIM_CCx_ENABLE);
__HAL_TIM_ENABLE(&TIM2_Handler);
}
|
|