新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2017-7-31
- 在线时间
- 5 小时
|
1金钱
弄了好几天,都没有头绪,而且看数据手册上面,发现有好多TIM2_ETR管脚,到底用那个管脚呢,下面贴下代码,看看哪里配置不得
void TIM2_Init(u16 arr,u16 psc)
{
TIM_ClockConfigTypeDef sClockSoureConfig;
sClockSoureConfig.ClockSource=TIM_CLOCKSOURCE_ETRMODE2;
sClockSoureConfig.ClockPrescaler=TIM_CLOCKPRESCALER_DIV1;
sClockSoureConfig.ClockPolarity=TIM_CLOCKPOLARITY_RISING;
sClockSoureConfig.ClockFilter=0;
TIM2_Handler.Instance=TIM1;
TIM2_Handler.Init.Prescaler=psc;
TIM2_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;
TIM2_Handler.Init.Period=0xffffffff;
TIM2_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
HAL_TIM_ConfigClockSource(&TIM2_Handler,&sClockSoureConfig);
HAL_TIM_Base_Init(&TIM2_Handler);
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
{
GPIO_InitTypeDef GPIO_Initure;
if(htim->Instance==TIM2)
{
__HAL_RCC_GPIOA_CLK_ENABLE(); //¿aÆôGPIOAê±Öó
__HAL_RCC_TIM2_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_5; //PA5
GPIO_Initure.Mode=GPIO_MODE_INPUT; //¸¡¿Õêäèë
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //¸ßËù
GPIO_Initure.Alternate=GPIO_AF1_TIM2; //PA0¸′óÃÎaTIM5í¨μà1
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_0; //PA0
GPIO_Initure.Mode=GPIO_MODE_INPUT; //¸′óÃíÆíìêä3ö
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //¸ßËù
GPIO_Initure.Alternate=GPIO_AF1_TIM2; //PA0¸′óÃÎaTIM5í¨μà1
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
HAL_NVIC_SetPriority(TIM2_IRQn,2,3); //éèÖÃÖD¶ÏóÅÏè¼¶£¬ÇàÕ¼óÅÏè¼¶1£¬×óóÅÏè¼¶3
HAL_NVIC_EnableIRQ(TIM2_IRQn); //¿aÆôITM3ÖD¶Ï
}
}
|
|