妹妹 发表于 2025-9-24 16:11:29

请问STC8H4K64TLCD的PWMA模块用法

我使用了PWMA模块的PWM输出功能和PWMA_4P_3的脉冲捕获下降沿的功能,
发现这两个功能一起初始化的生活,会有一个失效,
试验了好几种方式,都成功不了,请大神帮帮忙








国芯人工智能 发表于 2025-9-24 16:12:00

关于STC8H4K64TLCD的PWMA模块使用问题,以下是一些可能的解决方案和建议:

1. 检查初始化顺序:在初始化PWMA模块时,确保先配置PWM输出功能,然后再配置脉冲捕获功能。这样可以确保两个功能都能正常工作。

2. 检查寄存器设置:请仔细检查与PWMA模块相关的寄存器设置,确保所有必要的位都被正确设置。特别是与PWM输出和脉冲捕获相关的位。

3. 检查中断设置:如果使用了中断来处理脉冲捕获事件,请确保中断使能位被正确设置,并且中断服务程序被正确编写。

4. 检查硬件连接:确保外部电路与PWMA模块的连接正确无误,包括电源、地线和信号线。

5. 参考数据手册:查阅STC8H4K64TLCD的数据手册,了解PWMA模块的具体用法和限制。数据手册通常会提供详细的寄存器描述和使用示例。

6. 寻求技术支持:如果以上方法都无法解决问题,建议联系STC的技术支持团队,他们可能会提供更专业的帮助。

希望这些建议能帮助您解决问题。

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

乘风飞扬 发表于 2025-9-24 16:48:05

同组PWM捕获测量的周期值与PWM输出的周期相同,都是ARRH,ARRL。
由于同一组的PWM输出和捕获同步,如果PWM输出直接反馈接入到同组PWM捕获接口,
则每次捕获都刚好PWM溢出,计算出的周期值始终是0。
使能PWM输出时,如果使用同组PWM捕获外部输入信号有异常值,
是由于在发生捕获动作时将当前的计数值保存到PWMx_CCRn里面,但由于使能了PWM输出,
所以计数值到PWMx_ARR后就立即归零了
(正常是计数到FFFF再归零,开启输出后计数值到ARR值就立即归零)。

解决方法:1. 同一组PWM里面如果要输出和捕获同时进行,将ARR设置为FFFF。
2. 修改捕获计数方法:cnt = ((cnt1 - cnt2) % (PWMA_ARR + 1));
3. 捕获/输出分开两组PWM,例如:PWMA捕获,PWMB输出。
三种方法都可以解决以上问题。

附件例子供参考

HyunYong_7782 发表于 2025-10-20 19:56:27

乘风飞扬 发表于 2025-9-24 16:48
同组PWM捕获测量的周期值与PWM输出的周期相同,都是ARRH,ARRL。
由于同一组的PWM输出和捕获同步,如果PWM ...

我直接设置了FFFF以后 频率测量正常了 但是脉冲又不行了

HyunYong_7782 发表于 2025-10-20 20:35:04

乘风飞扬 发表于 2025-9-24 16:48
同组PWM捕获测量的周期值与PWM输出的周期相同,都是ARRH,ARRL。
由于同一组的PWM输出和捕获同步,如果PWM ...

使用了方案3
PWMB 捕获测频
PWMA 脉冲输出 测频没问题了
但是脉冲信号没了

乘风飞扬 发表于 2025-10-21 09:04:33

HyunYong_7782 发表于 2025-10-20 20:35
使用了方案3
PWMB 捕获测频
PWMA 脉冲输出 测频没问题了


脉冲输出比较简单,参考实验箱例程包里面的PWM输出呼吸灯的例子
实验箱例程包下载页面:https://www.stcai.com/syx
页: [1]
查看完整版本: 请问STC8H4K64TLCD的PWMA模块用法