打印
[STM32F4]

关于定时器级联的问题

[复制链接]
895|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
baiouxp|  楼主 | 2019-4-16 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用 stm32f407 的 TIM1 和 TIM8 级联组成 32 位计数器,TIM1 作为主计数器,TIM8 作为从计数器配置代码如下
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        RCC_APB2PeriphClockCmd (STD_TIM1_CLK, ENABLE);  /// 使能标准频率时钟 1
        RCC_APB2PeriphClockCmd (STD_TIM2_CLK, ENABLE);  /// 使能标准频率时钟 2
        
        // 标准频率定时器 1 配置
        TIM_TimeBaseInitStructure.TIM_Period = 0xFFFF;   // 自动重装载值
        TIM_TimeBaseInitStructure.TIM_Prescaler = 0;  // 定时器分频
        TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数模式
        TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseInit(STD_TIM1, &TIM_TimeBaseInitStructure);

        TIM_SetCounter (STD_TIM1, 0);   // 清零计数器 CNT
        
        TIM_SelectOutputTrigger (STD_TIM1, TIM_TRGOSource_Update);//Tim1 更新输出作为触发信号
                        
        // 标准频率定时器 2 配置
        TIM_TimeBaseInitStructure.TIM_Period = 0xFFFF;   // 自动重装载值
        TIM_TimeBaseInitStructure.TIM_Prescaler = 0;  // 定时器分频
        TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数模式
        TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseInit(STD_TIM2, &TIM_TimeBaseInitStructure);

        TIM_SetCounter (STD_TIM2, 0);   // 清零计数器 CNT
        
        TIM_SelectMasterSlaveMode (STD_TIM2, TIM_MasterSlaveMode_Enable);// 主从模式 MSM
        TIM_SelectSlaveMode (STD_TIM2, TIM_SlaveMode_External1);// 从模式外部触发模式
        TIM_SelectInputTrigger (STD_TIM2, TIM_TS_ITR0);// 触发选择,ITR0 即 TIM1
        TIM_Cmd(STD_TIM2, ENABLE);


其中 STD_TIM1 是 TIM1,STD_TIM2 是 TIM8.
我在 main 函数中启动 TIM1 后,用另一定时器 TIM2 定时 1 秒,在 TIM2 中断中用 TIM_GetCounter (STD_TIM2) * 65536 + TIM_GetCounter (STD_TIM1) 语句读出的数据是 4217116,
但是 TIM1 和 TIM8 的时基都应该是 168M,并且我没有配置分频,请问这个的原因是什么?
我用 TIM_GetCounter (STD_TIM2) * 65536 * 4 + TIM_GetCounter (STD_TIM1) 才能得到 168000000 的计数值。

经我仔细测试,发现只要TIM1计数不超过65535,也就是没有UEV更新事件时,计数值是正确的,貌似是产生了更新事件丢失? 请问有无高手知道这个现象的原因?

使用特权

评论回复
沙发
请叫我树人| | 2019-4-17 09:28 | 只看该作者
好帖子啊!帮你顶住啊!挺好的资料啊!

使用特权

评论回复
板凳
renzheshengui| | 2019-5-7 10:53 | 只看该作者
感谢楼主分享

使用特权

评论回复
地板
paotangsan| | 2019-5-7 11:22 | 只看该作者
非常好的经验分享

使用特权

评论回复
5
guanjiaer| | 2019-5-7 11:45 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
heimaojingzhang| | 2019-5-7 11:46 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
磨砂| | 2019-5-8 08:20 | 只看该作者
非常宝贵的经验啊

使用特权

评论回复
8
晓伍| | 2019-5-8 08:27 | 只看该作者
非常宝贵的经验

使用特权

评论回复
9
八层楼| | 2019-5-8 08:36 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝