找回密码
 立即注册
查看: 5|回复: 0

擎天柱开发板 无法输出PWM问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2026-04-02 21:22:49
已绑定手机

1

主题

0

回帖

7

积分

新手上路

积分
7
发表于 昨天 21:22 | 显示全部楼层 |阅读模式
用了很多版本的代码,始终无法输出PWM。对应输出口检查多遍没有问题,输出模式双向口和推挽都试过,一直是直线输出。
重新用Aicube生成了一个项目,核心代码如下:
void Io_Init(void)
{
        P0M1 = 0xff;               
        P0M0 = 0x00;               
        P1M1 = 0xff;               
        P1M0 = 0x00;               
        P2M1 = 0x00;
        P2M0 = 0x01;               
        P3M1 = 0xff;               
        P3M0 = 0x00;               
        P4M1 = 0xff;               
        P4M0 = 0x00;               
        P5M1 = 0xff;               
        P5M0 = 0x00;               
}
void Pwm_Init(void)
{
        EAXFR = 1; //扩展寄存器(XFR)访问使能
        PWMA_PS = 0x02;//设置PWMA的引脚切换
        PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
        PWMA_CCMR1 = 0x60;
        PWMA_CCER1 = 0x01;
        PWMA_CCMR1 = 0x68;
        PWMA_ARRH = 0x2b;
        PWMA_ARRL = 0x33;
        PWMA_CCR1H = 0x15;
        PWMA_CCR1L = 0x9a;
        PWMA_ENO = 0x01;//设置PWMA的输出使能
        PWMA_BKR = 0x80;  //使能主输出
        PWMA_CR1 = 0x81; //使能ARR预装载,开始计时
}

void UpdatePwm(unsigned char num, unsigned int duty)
{
        if(num<=3&&duty>36864)return;// dutya不可以超过36864
        if(num>=4&&duty>0)return;// dutyb不可以超过0
        switch (num)
        {
        case 1:
                PWMA_CCR1H = (unsigned char)(duty >> 8); // 设置占空比时间
                PWMA_CCR1L = (unsigned char)(duty);
                break;
        default:
                break;
        }
}
//<<AICUBE_USER_GLOBAL_DEFINE_END>>




////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
                Io_Init();
    Pwm_Init();
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
        USBLIB_OUT_Done();              //查询方式处理USB接收的数据

        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}
P20口没有PWM输出。
求解,能力有限,能试的基本都试过了。。
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-3 05:12 , Processed in 0.094469 second(s), 42 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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