行者束己 发表于 2016-6-13 12:03:54

stm32f042f4p6定时器外部脉冲计数,调了三天了不能计数啊,hal库





void MX_TIM2_Init(void)
{
   TIM_SlaveConfigTypeDef sSlaveConfig;
   TIM_MasterConfigTypeDef sMasterConfig;
TIM_ClockConfigTypeDef sClockSourceConfig;
   htim2.Instance = TIM2;
   htim2.Init.Prescaler = 0;
   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
   htim2.Init.Period = 0xFFFF;
   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
   {
   Error_Handler();
   }
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_ETRMODE2;
   sClockSourceConfig.ClockPolarity = TIM_ETRPOLARITY_NONINVERTED;//TIM_ETRPOLARITY_NONINVERTED
sClockSourceConfig.ClockPrescaler = TIM_ETRPRESCALER_DIV1;
sClockSourceConfig.ClockFilter = 0x0;
   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
   {
   Error_Handler();
   }





这是我定时器的配置方式,单片机是stm32f042f4p6,用的cubemx的HAl库,口线接的是PA0,TIM2的ETR口,
虽然用hal库我配置的相关寄存器都去看了一遍了,最终配进去的寄存器值跟标准库相同计数应用的方式是一样的,我不知道我这个问题出在哪里,还是我模式选错了。
我TIM_CLOCKSOURCE_ETRMODE2,TIM_CLOCKSOURCE_ETRMODE1,TIM_SLAVEMODE_TRIGGER模式都试过了,不行

时钟启动和输入io口配置是在上面的HAL_TIM_Base_Init(&htim2)完成的,这个应该没问题

行者束己 发表于 2016-6-13 14:09:50

自己顶,求助求助
页: [1]
查看完整版本: stm32f042f4p6定时器外部脉冲计数,调了三天了不能计数啊,hal库