打印
[资料干货]

PWM解析

[复制链接]
316|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丙丁先生|  楼主 | 2024-10-9 07:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PWM, pi, gp, IO, GPIO
#include "CH57x_common.h" // 引入CH57x系列单片机的通用头文件

int main() // 主函数入口
{
    char i; // 定义一个字符型变量i,用于循环计数
    GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeOut_PP_5mA); // 配置PB1引脚为推挽输出模式,输出电流为5mA
    GPIOB_ModeCfg(GPIO_Pin_1, GPIO_ModeOut_PP_5mA); // 配置PB2引脚为推挽输出模式,输出电流为5mA
    PWMX_CLKCfg( 4 ); // 配置PWM时钟源频率为4倍系统时钟
    PWMX_CycleCfg( PWMX_Cycle_64 ); // 配置PWM周期为64个时钟周期
    while(1) // 无限循环
    {
        for(i=0;i<64;i++) // 从0到63循环
        {
            PWMX_ACTOUT( CH_PWM6, 64*i/64, Low_Level, ENABLE); // 设置PWM6通道占空比为i/64,低电平有效,使能输出
            PWMX_ACTOUT( CH_PWM7, 64*i/64, Low_Level, ENABLE); // 设置PWM7通道占空比为i/64,低电平有效,使能输出
            mDelaymS(50); // 延时50毫秒
        }

        for(i=64;i>0;i--) // 从64到1循环
        {
            PWMX_ACTOUT( CH_PWM6, 64*i/64, Low_Level, ENABLE); // 设置PWM6通道占空比为i/64,低电平有效,使能输出
            PWMX_ACTOUT( CH_PWM7, 64*i/64, Low_Level, ENABLE); // 设置PWM7通道占空比为i/64,低电平有效,使能输出
            mDelaymS(50); // 延时50毫秒
        }
    }
}

亲测有效,但是TMR方式的PWM没有效果。

使用特权

评论回复

相关帖子

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

本版积分规则

575

主题

1941

帖子

5

粉丝