凡仁兵 发表于 2025-4-9 09:59:59

8H1K16的PWMA | 已解决

为什么8H1K16的PWMA的N端不出波形,P端没有问题。



   PWMA_CCER2=0x00;//写CCMRX前必需先清零CCERx关闭通道。
      
   PWMA_CCMR3=0x60;//设置为工作在PWM模式1。
   PWMA_CCMR4=0x60;
      
   PWMA_CCER2=0x11;//使能CC3/CC4通道。
         
   PWMA_CCR4=250;
   PWMA_CCR3=125;         
   PWMA_ARR=500;      //设置周期时间.

   PWMA_PS=0x50;       //选择PWM3N输出在P2.5口,PWM4P输出在2.6口。
   PWMA_ENO=0x60;    //使能PWM3N输出。
   
   PWMA_BKR=0x80;    //使能主输出。
   PWMA_CR1=0x01;    //寄存器CEN位被置1,开始计时。


上面这段程序,运行时只在P2.6上能看到波形,P2.5没有反应。后来做过多种测试发现,只要是PWMA的N端,哪怕是只设定为单独工作,它也不出波形。但PWMA的P端完全正常。求高手分晰原因。

国芯人工智能 发表于 2025-4-9 10:03:00

针对您提到的STC8H1K16的PWMA模块N端无波形输出的问题,以下是一些可能的原因及解决方案分析:

1. 配置寄存器顺序问题
在配置PWMA模块时,寄存器的写入顺序非常重要。根据您的代码,PWMACCER2在配置PWMACCMR3和PWMACCMR4之前被清零,这是正确的操作。但需要注意的是,PWMACCER2的使能操作(PWMACCER2=0x11)应在所有相关寄存器配置完成后进行,以确保通道配置正确。

2. N端输出使能问题
您提到PWMAENO=0x60用于使能PWM3N输出。请确认PWMAENO寄存器的位设置是否正确。PWMAENO的位6(PWM3N使能位)应被置1,以确保N端输出被正确使能。如果该位未正确设置,N端将无法输出波形。

3. 引脚复用配置
确保P2.5引脚已正确配置为PWMA的N端输出。在某些微控制器中,引脚功能需要通过特定的寄存器进行配置。请检查相关引脚复用寄存器,确保P2.5被配置为PWMA的N端输出功能。

4. 硬件连接问题
检查P2.5引脚的硬件连接,确保没有短路或断路现象。如果硬件连接存在问题,即使软件配置正确,N端也无法输出波形。

5. 时钟配置
确保PWMA模块的时钟源已正确配置并启用。如果时钟源未正确配置,PWMA模块将无法正常工作,导致N端无波形输出。

6. 寄存器位宽和值范围
确认PWMACCR4、PWMACCR3和PWMAARR的值在有效范围内。如果这些寄存器的值超出范围,可能导致PWMA模块无法正常工作。

7. 调试与测试
建议使用调试工具逐步检查寄存器的值,确保每一步配置都按预期执行。可以通过单步调试或设置断点,观察寄存器的值变化,以定位问题所在。

8. 参考手册
仔细阅读STC8H1K16的参考手册,特别是关于PWMA模块的部分,确保所有寄存器的配置符合手册要求。手册中可能包含一些特定的配置步骤或注意事项,这些信息对于解决问题至关重要。

9. 固件版本
确认使用的固件版本是否支持PWMA模块的N端输出功能。某些早期版本的固件可能存在功能缺陷或限制,导致N端无法正常工作。

10. 外部干扰
检查是否存在外部干扰或噪声影响N端输出。在某些情况下,外部干扰可能导致N端输出不稳定或无法正常工作。

通过以上步骤的检查和调整,您应该能够找到并解决STC8H1K16的PWMA模块N端无波形输出的问题。如果问题仍然存在,建议联系芯片厂商的技术支持,获取进一步的帮助。

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

梁工 发表于 2025-4-9 10:41:43

请自行下载测试

STC8H系列-高级PWM范例程序下载,2024/1/3 更新
https://www.stcaimcu.com/thread-1779-1-1.html
(出处: 国芯技术交流网站)

凡仁兵 发表于 2025-4-9 11:00:46

找到原因了,
“PWMA_CCER2=0x11;//使能CC3/CC4通道。”是这里设置有误。
我需要开的是PWMA3_N和PWMA4_P.但0X11是开PWMA3_P和PWMA4_P,   
所以N通道的P2.5没有输出,改成PWMA_CCER2=0x14; 后恢复正常。
页: [1]
查看完整版本: 8H1K16的PWMA | 已解决