请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 836|回复: 1
收起左侧

定时器直接输出0.1Hz波形是否可以,明确的说,完全没问题,提供个配置代码(2022-06-06)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
发表于 2022-6-6 14:51:07 | 显示全部楼层 |阅读模式
不需要做定时器级联,直接直接配置就行,贼简单。
PWM频率 = TIMxCLK / (usPrescaler + 1)/(usPeriod + 1)

16bit定时器可以的, usPrescaler 参数16bit范围, usPeriod 参数16bit范围。
32bit定时器更可以,usPrescaler 参数16bit范围, usPeriod 参数32bit范围。

比如下面,我的就是16bit定时器TIM4的输出配置:

[C] 纯文本查看 复制代码
        /*  PWM频率 = TIMxCLK / usPrescaler + 1)/usPeriod + 1)*/
        TimHandle.Instance = TIMx;
        TimHandle.Init.Prescaler         = 65535;
        TimHandle.Init.Period            = 12817;
        TimHandle.Init.ClockDivision     = 0;
        TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;
        TimHandle.Init.RepetitionCounter = 0;
        TimHandle.Init.AutoReloadPreload = 0;
        if (HAL_TIM_PWM_Init(&TimHandle) != HAL_OK)
        {
                Error_Handler(__FILE__, __LINE__);
        }

        /* 配置定时器PWM输出通道 */
        sConfig.OCMode       = TIM_OCMODE_PWM1;
        sConfig.OCPolarity   = TIM_OCPOLARITY_HIGH;
        sConfig.OCFastMode   = TIM_OCFAST_DISABLE;
        sConfig.OCNPolarity  = TIM_OCNPOLARITY_HIGH;
        sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
        sConfig.OCIdleState  = TIM_OCIDLESTATE_RESET;

        /* 占空比 */
        sConfig.Pulse = 6408;
        if (HAL_TIM_PWM_ConfigChannel(&TimHandle, &sConfig, TimChannel[_ucChannel]) != HAL_OK)
        {
                Error_Handler(__FILE__, __LINE__);
        }
        
        /* 启动PWM输出 */
        if (HAL_TIM_PWM_Start(&TimHandle, TimChannel[_ucChannel]) != HAL_OK)
        {
                Error_Handler(__FILE__, __LINE__);
        }



效果展示:

image.png




回复

使用道具 举报

1

主题

72

回帖

75

积分

初级会员

积分
75
发表于 2022-7-10 11:24:51 | 显示全部楼层
还可以降低系统主频或者总线时钟的频率,把TIMxCLK降下来
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 07:49 , Processed in 0.220786 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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