关于STM32高级定时器配置为外部时钟模式2的问题?

2019-03-23 18:12发布

各位好!我想用STM32F103RBT6(也就是ALIENTEK MiniSTM32)的高级定时器1测外部计数的个数。采用外部时钟模式2.现代码如下:
            RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //时钟使能  
           TIM_DeInit(TIM1);        //配置TM1为计数器
           TIM_TimeBaseStructure.TIM_Period = 0xFFFF;                 //计数器自动装载值为0xFFFF
        TIM_TimeBaseStructure.TIM_Prescaler = 0x00;          //不分频
        TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;          //不滤波
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;           //向上计数
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
        //设置TM1为外部时钟模式2
        TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
        TIM_SetCounter(TIM1, 0);         //清除计数器值
        TIM_Cmd(TIM1, ENABLE);                 //开启计数
端口PA12已经配置为GPIO_Mode_IN_FLOATING。板的PA12虽已被上拉,用示波器能得到很好的方波。
然后另一定时器定时器的中断到来时度出TIM1_CNT值。另外用TIM2的外部时钟模式2能读出TIM2_CNT值。可是TIM1_CNT总为0!
请问错在那里了?望指教一下,麻烦啦! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
xwluo2011
1楼-- · 2019-03-23 23:33
/ 难道我的问题太简单了,大家都不理我!请麻烦打几个字吧。
Li_Lei
2楼-- · 2019-03-24 02:34
定时器通道设置了吗? TIM1_CNT总为0就是没启动,pA12初始化了吗?

[ 本帖最后由 huo_hu 于 2012-5-6 09:37 编辑 ]
xwluo2011
3楼-- · 2019-03-24 05:22
 精彩回答 2  元偷偷看……
Li_Lei
4楼-- · 2019-03-24 05:25
应该不是调试的问题,这个我也没搞过,我觉得可能还是初始化的问题。找个类似的例程比较一下吧
苍天吐血
5楼-- · 2019-03-24 07:22
RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
helenhll
6楼-- · 2019-03-24 13:02
 精彩回答 2  元偷偷看……

一周热门 更多>