找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1322|回复: 2
收起左侧

STM32单片机定时器问题

[复制链接]
ID:592145 发表于 2020-10-23 11:01 | 显示全部楼层 |阅读模式
使用STM32f103c8t6单片机进行PWM实验时一直搞不懂TIM_ClockDivision是起什么作用?分的是哪个时钟的频率?还有就是TIM4明明是挂在APB1下的,APB1最高不是36M吗?为什么实测出来的工作频率是72M?从哪查看这些数据?
这是源代码:
void Init_tim4(uint16_t per,uint16_t psc)
{       
        TIM_TimeBaseInitTypeDef timebase_date;
        TIM_OCInitTypeDef TIM4_OC_Init_date;
       
        RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM4,ENABLE);
       
        timebase_date .TIM_ClockDivision=1;
        timebase_date .TIM_CounterMode=TIM_CounterMode_Up ;
        timebase_date .TIM_Period =per ;//装置周期
        timebase_date .TIM_Prescaler =psc ;        //分频值
        TIM_TimeBaseInit (TIM4 ,&timebase_date );
       
        TIM4_OC_Init_date .TIM_OCMode =TIM_OCMode_PWM1 ;
        TIM4_OC_Init_date .TIM_OCPolarity =TIM_OCPolarity_High ;
        TIM4_OC_Init_date .TIM_Pulse =0;
        TIM4_OC_Init_date .TIM_OutputState =TIM_OutputState_Enable;
        TIM_OC3Init(TIM4,&TIM4_OC_Init_date );
       
        TIM_OC3PreloadConfig (TIM4 ,TIM_OCPreload_Enable );
//        TIM_ARRPreloadConfig (TIM4 ,ENABLE );
       
        TIM_Cmd (TIM4,ENABLE );

回复

使用道具 举报

ID:833190 发表于 2020-10-23 14:19 | 显示全部楼层
本帖最后由 i_could_have 于 2020-10-23 14:33 编辑

TIM_ClockDivision:时钟分频,设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分频比,基本定时器没有此功能,不用设置。这个TIM_Prescaler =psc如果是2的话,频率就是36*2M
回复

使用道具 举报

ID:592145 发表于 2020-10-26 11:41 | 显示全部楼层
i_could_have 发表于 2020-10-23 14:19
TIM_ClockDivision:时钟分频,设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分频比,基本定时器没 ...

好嘞,懂了,谢谢了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表