[STM32F0] HAL库stm32f0定时器外部脉冲计数,调了三天了,不能计数啊

[复制链接]
5108|2
 楼主| xyl210xyl 发表于 2016-6-13 15:53 | 显示全部楼层 |阅读模式
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)完成的,这个应该没问题
xmshao 发表于 2016-6-13 16:49 | 显示全部楼层
既然选择ETR作为时钟源,那就该配置TIM_CLOCKSOURCE_ETRMODE2。

看你的TIME2配置好像没啥问题。 你启动了TIM2吗?即TIM_CR1_CEN使能位。
 楼主| xyl210xyl 发表于 2016-6-13 18:25 | 显示全部楼层
xmshao 发表于 2016-6-13 16:49
既然选择ETR作为时钟源,那就该配置TIM_CLOCKSOURCE_ETRMODE2。

看你的TIME2配置好像没啥问题。 你启动了T ...

我使能了,脉冲就是进不去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部