通过昨天的努力 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 开始计时
根据您提供的信息,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. 代码逻辑与调试:
检查代码执行顺序,确保寄存器写入顺序符合数据手册要求(如先清零再配置)。可尝试逐步调试,观察各寄存器状态。
建议逐一排查上述环节,优先验证管脚配置与时钟使能,再深入检查寄存器设置与代码逻辑。如问题持续,可提供更详细的寄存器配置及硬件设计图以便进一步分析。
[本文内容由国芯人工智能辅助生成,仅供参考]
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
注意IO模式的设置,IO上电高阻,作为PWM输出一般设置为推挽 首先,PWM7的输出模式在 PWMB_CCMR3 寄存器设置:
其次,输出使能在 PWMB_CCER2 寄存器设置:
还有,PWM7的捕获比较寄存器是PWMB_CCR7:
论坛有例子的哦。 DebugLab 发表于 2025-7-22 09:11
注意IO模式的设置,IO上电高阻,作为PWM输出一般设置为推挽
是的 P3.3已经设置成推挽模式了
应该是PWMB寄存器设置还不对
谢谢 乘风飞扬 发表于 2025-7-22 09:11
首先,PWM7的输出模式在 PWMB_CCMR3 寄存器设置:
谢谢 等一下再试试 梁工 发表于 2025-7-22 10:25
论坛有例子的哦。
谢谢梁工 下载的例程很丰富 等一下再研究一下 pwmb配置完之前要配置 好是那个端口 好像是p sw那
页:
[1]