天宁宁 发表于 2025-7-22 04:53:46

通过昨天的努力 PWMA 已经输出波形 可惜PWMB还是没有实现

          本来电路设计是P2.0和P2.2输出PWM
         控制电机正反转
         测试例程P2.0有输出PWM波形
      修改管脚配置以后
      P2.2还是没有输出
      可能设置还不正确


         于是再用PWMB
         配置到P3.3
          PWMA和PWMB同时工作
          示波器检测
         PWMB P3,3还是没有输出   

               
PWMA_PS=0X01;                      //P2.2 P2.3功能脚切换寄存器FEB2H
            PWMA_CCER1=0x00;                   //写 CCMRx 前必须先清零 CCxE    关闭通道
            PWMA_CCMR1=0x60;                   //设置 PWM1 模式1 输出   捕获比较模式寄存器
            PWMA_CCER1=0x01;                   //使能 CC1E 通道, 高电平有效捕获比较使能寄存器
            PWMA_CCR1=100;                     //设置占空比时间 捕获比较寄存器
            PWMA_ARR=2000;                     //设置周期时间       自动重装载寄存器
            PWMA_ENO=0X01;                     //使能PWM1P输出   输出使能寄存器
            PWMA_BKR=0X80;                     //使能主输出 MOEA MOEB   刹车寄存器
            PWMA_CR1=0X01;                     //CENA=1开始计时


PWMB部分按照PWMA修改

            PWMB_PS=0X10;                      //P3.3
            PWMB_CCER1=0x00;                   //写 CCMRx 前必须先清零 CCxE    关闭通道
            PWMB_CCMR1=0x60;                   //设置 PWM1 模式1 输出
            PWMB_CCER1=0x01;                   //使能 CC5E 通道, 高电平有效
            PWMB_CCR5=100;                     //设置占空比时间
            PWMB_ARR=2000;                     //设置周期时间
            PWMB_ENO=0X10;                     //使能PWM7P输出
            PWMB_BKR=0X80;                     //使能主输出 MOEA MOEB
            PWMB_CR1=0X01;                     //CENB=1 开始计时





                        

国芯人工智能 发表于 2025-7-22 04:58:00

根据您提供的信息,PWMA已成功输出波形,但PWMB在配置至P33后仍未有输出。以下是针对该问题的分析与建议:

1. 管脚配置检查:
   确保PWMB对应的管脚(如P33)已正确配置为PWM功能。检查相关寄存器(如GPIOxAFSEL、GPIOxPMD等),确认其复用功能设置为PWM模式。

2. 时钟使能:
   检查PWM模块及对应GPIO的时钟是否已启用。若未开启时钟,PWM无法正常工作。

3. 寄存器配置验证:
PWMAPS用于选择PWM通道的引脚映射,需确认其值是否匹配目标引脚(如P33)。
PWMACCER1控制通道使能,确保CC1E位已置1。
PWMACCMR1配置模式,需确认为PWM模式1或模式2。
PWMACCR1和PWMAARR设置占空比和周期,需合理调整数值以确保波形可检测。

4. 硬件连接与示波器设置:
   确认示波器探头连接正确,且触发条件、时间基准等参数适合检测PWM信号。若使用外部参考,需确保同步。

5. 代码逻辑与调试:
   检查代码执行顺序,确保寄存器写入顺序符合数据手册要求(如先清零再配置)。可尝试逐步调试,观察各寄存器状态。

建议逐一排查上述环节,优先验证管脚配置与时钟使能,再深入检查寄存器设置与代码逻辑。如问题持续,可提供更详细的寄存器配置及硬件设计图以便进一步分析。

[本文内容由国芯人工智能辅助生成,仅供参考]

AI-32位8051 发表于 2025-7-22 09:07:14


STC8H系列-高级PWM范例程序下载,2024/1/3 更新 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯人工智能技术交流网站 - AI32位8051交流社区https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1779&extra=page%3D1



DebugLab 发表于 2025-7-22 09:11:39

注意IO模式的设置,IO上电高阻,作为PWM输出一般设置为推挽

乘风飞扬 发表于 2025-7-22 09:11:52

首先,PWM7的输出模式在 PWMB_CCMR3 寄存器设置:


其次,输出使能在 PWMB_CCER2 寄存器设置:


还有,PWM7的捕获比较寄存器是PWMB_CCR7:

梁工 发表于 2025-7-22 10:25:42

论坛有例子的哦。

天宁宁 发表于 2025-7-22 11:02:34

DebugLab 发表于 2025-7-22 09:11
注意IO模式的设置,IO上电高阻,作为PWM输出一般设置为推挽

是的 P3.3已经设置成推挽模式了
应该是PWMB寄存器设置还不对
谢谢

天宁宁 发表于 2025-7-22 11:02:56

乘风飞扬 发表于 2025-7-22 09:11
首先,PWM7的输出模式在 PWMB_CCMR3 寄存器设置:




谢谢 等一下再试试

天宁宁 发表于 2025-7-22 11:03:35

梁工 发表于 2025-7-22 10:25
论坛有例子的哦。

谢谢梁工 下载的例程很丰富 等一下再研究一下

vb2002 发表于 2025-7-22 23:17:51

pwmb配置完之前要配置 好是那个端口 好像是p sw那
页: [1]
查看完整版本: 通过昨天的努力 PWMA 已经输出波形 可惜PWMB还是没有实现