Tank2535 发表于 2026-6-21 13:49:17

关于STC8H8K64U LQFP32 PWM配置的问题

正在做的项目,需要用到P1.1、P2.2PWM输出,同频率不同占空比。P1.1的配置没有问题,P2.2不知道怎么配置,规格书看了又看,还是不知道哪儿有问题。


void Pwm_Init(void)
{
        PWM_GPIO = 0;

    P_SW2   |= 0x80;//扩展寄存器(XFR)访问使能
        PWMA_PSCR = 0;        // 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR[15:0}+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)*2).
        PWMA_DTR= 0;                // 死区时间配置, n=0~127: DTR= n T,   0x80 ~(0x80+n), n=0~63: DTR=(64+n)*2T,
                                                //                                0xc0 ~(0xc0+n), n=0~31: DTR=(32+n)*8T,   0xE0 ~(0xE0+n), n=0~31: DTR=(32+n)*16T,
        PWMA_ARR = 425;        // 自动重装载寄存器,控制PWM周期
        PWMA_CCER1= 0;
        PWMA_CCER2= 0;
        PWMA_SR1    = 0;
        PWMA_SR2    = 0;
        PWMA_ENO    = 0;
        PWMA_PS   = 0;
        PWMA_IER    = 0;

        PWMA_CCMR1= 0x68;                // 通道模式配置, PWM模式1, 预装载允许
        PWMA_CCMR2= 0x60;
        PWMA_CCR1   = 000;                // 比较值, 控制占空比(高电平时钟数)
        PWMA_CCR2   = 000;
        PWMA_CCER1 |= 0x05;                // 开启比较输出, 高电平有效
        PWMA_CCER1 |= 0x10;
        PWMA_PS    |= 0x00;                // 选择IO, 0:选择P1.0 P1.1, 1:选择P2.0 P2.1, 2:选择P6.0 P6.1,
        PWMA_PS    |= 0x10;
        PWMA_ENO   |= 0x06;                // IO输出允许,bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,bit3: ENO2N,bit2: ENO2P,bit1: ENO1N,bit0: ENO1P

        PWMA_BKR    = 0x80;                // 主输出使能 相当于总开关
        PWMA_CR1    = 0x81;                // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)
        PWMA_EGR    = 0x01;                //产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值
}

PWMA_CCR1\PWMACCR2在主循环里调占空比。版主帮忙看看,感谢!

神农鼎 发表于 2026-6-21 14:33:40





Tank2535 发表于 2026-6-21 17:32:55

问题已解决!感谢!

神农鼎 发表于 2026-6-21 20:04:15

Tank2535 发表于 2026-6-21 17:32
问题已解决!感谢!

如何解决的?
STC的【AI助手】生成普通的程序供参考,有帮助吗

狂热主宰 发表于 2026-6-21 21:52:58

官方AI工具可以帮助分析外设配置
对解决问题还是有帮助的

狂热主宰 发表于 2026-6-21 21:55:02

神农鼎 发表于 2026-6-21 20:04
如何解决的?
STC的【AI助手】生成普通的程序供参考,有帮助吗
感觉对于很多朋友来说
还是很多有帮助的
分析程序配置

梁工 发表于 2026-6-21 22:21:24

PWMA_PS |= 0x04; // PWM2P选择P2.2
页: [1]
查看完整版本: 关于STC8H8K64U LQFP32 PWM配置的问题