打印
[STM32F0]

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

[复制链接]
4806|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

粉丝