打印
[STM32F0]

关于定时器TIM1的分频疑问,请高手帮帮忙,多谢

[复制链接]
736|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxqfhy|  楼主 | 2019-5-26 08:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用TIM1 的TIM_TRGOSource_Update触发ADC,发现我需要的
TIM_TimeBaseStructure.TIM_Prescaler = 48-1;      
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;   
设置不能实现,只有 TIM_TimeBaseStructure.TIM_Period = 50000-1;起作用
void TIM1_Config(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef        TIM_OCInitStructure;
  
  TIM_DeInit(TIM1);
  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
  TIM_OCStructInit(&TIM_OCInitStructure);  
  //Time base configuration
  TIM_TimeBaseStructure.TIM_Period = 50000-1;
  TIM_TimeBaseStructure.TIM_Prescaler = 48-1;      
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;   
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  
  TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update);
  TIM_Cmd(TIM1, DISABLE);
}

使用特权

评论回复
沙发
小鱼丸| | 2019-5-26 20:16 | 只看该作者
f CK_CNT = f CK_PSC / (PSCR[15:0] + 1)

943345cea837a587c3.png (25.44 KB )

943345cea837a587c3.png

使用特权

评论回复
板凳
小鱼丸| | 2019-5-26 20:22 | 只看该作者
TIM_Cmd(TIM1, DISABLE);

使用特权

评论回复
地板
hanzhen654| | 2019-5-26 21:25 | 只看该作者
按照标准的模式来  分频和周期  以此来确定一个需要的定时时间

使用特权

评论回复
5
wxqfhy|  楼主 | 2019-5-27 08:29 | 只看该作者
小鱼丸 发表于 2019-5-26 20:16
f CK_CNT = f CK_PSC / (PSCR[15:0] + 1)

朋友,给详细说一下。谢谢

使用特权

评论回复
6
wxqfhy|  楼主 | 2019-5-27 08:32 | 只看该作者
hanzhen654 发表于 2019-5-26 21:25
按照标准的模式来  分频和周期  以此来确定一个需要的定时时间

请详细解释一下,谢谢

使用特权

评论回复
7
buffered| | 2019-5-27 16:55 | 只看该作者
手册里应该说的非常清楚了,理解手册内容就可以了

使用特权

评论回复
8
香水城| | 2019-5-28 22:52 | 只看该作者
本帖最后由 香水城 于 2019-5-28 22:54 编辑

你现在是TIMER的更新事件作为ADC转换使能信号,

这个更新事件的频率跟 TIM_Prescaler TIM_Prescaler 以及时钟源频率 三个东西有关,
跟那个TIM_ClockDivision没有关系,具体细节自己回头看看手册就好了。

【准确地说,如果是高级定时器TIM1/TIM8,还跟那个重复计数寄存器配置有关。】

使用特权

评论回复
9
guanjiaer| | 2019-6-17 12:52 | 只看该作者
这个需要对寄存器详细了解啊

使用特权

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

本版积分规则

9

主题

25

帖子

0

粉丝