STM32
直播中

李涛

8年用户 1459经验值
私信 关注
[问答]

STM8S105c6 PWM只有OCi输出,OCiN没反应是怎么回事?

    STM8S105c6做电机控制,  PWM只有OCi输出,OCiN没反应。   单独测试PWM.
PB0 PB1 PB2 由 option byte 配置为定时器比较输出,下桥臂;PC1 PC2 PC2上桥臂。
   CMMRi=60 ,定时器运行,moe使能输出
   现在的问题是,上桥臂的pwm波形正常,频率、占空比、 高低有效都可控,但是下桥臂始终为低。
   反复查看option byte,配置了PBx为定时器比较输出。
   TIM1_CCERi ,都从0到F配置了个遍,上桥臂都会根据配置而变化,而下桥臂无动于衷。换了2个单片机,问题照旧。

    当把PB1/2/3配置为io输出, 可控高低输出,但PWM始终出不来。
   跪求解决方案,或者谁有105的pwm测试程序更好,要互补输出,



回帖(1)

李梅

2024-5-14 18:16:11
STM8S105C6是一款STMicroelectronics生产的8位微控制器,具有多种功能,包括PWM(脉冲宽度调制)功能。在您的情况下,您遇到了一个问题,即PWM只有OCi输出,而OCiN没有反应。这可能是由多种原因导致的,以下是一些可能的解决方案:

1. 检查硬件连接:首先,请确保您的硬件连接正确。检查PB0、PB1、PB2和PC1、PC2、PC3引脚是否正确连接到您的电机驱动器。此外,确保您的电源和地线连接正确。

2. 检查定时器配置:确保您正确配置了定时器。根据您的描述,您已经设置了CMMRi和moe,但请确保您还正确设置了其他相关寄存器,如TIMx_CR1、TIMx_CR2、TIMx_SMCR等。

3. 检查定时器通道配置:确保您正确配置了定时器通道。对于OCi和OCiN,您需要设置TIMx_CCMRi寄存器以选择适当的输出比较模式。此外,确保您正确设置了TIMx_CCERi寄存器以启用输出比较通道。

4. 检查定时器时钟:确保您的定时器时钟正确设置。如果时钟不正确,PWM波形可能无法正常工作。您可以在RCC(Reset and Clock Control)寄存器中设置时钟。

5. 检查中断:如果您使用了定时器中断,请确保您的中断服务例程(ISR)正确处理了PWM输出。在ISR中,您可能需要更新定时器的捕获/比较寄存器值以生成所需的PWM波形。

6. 软件问题:请检查您的代码是否有任何逻辑错误或配置错误。确保您正确设置了所有相关的寄存器和位字段。此外,确保您的编译器和链接器设置正确,以便生成正确的可执行文件。

7. 硬件故障:虽然不太可能,但硬件故障(如损坏的引脚或内部损坏的微控制器)可能导致问题。您提到已经更换了两个单片机,但如果问题仍然存在,请考虑检查其他硬件组件,如电机驱动器、电源和连接器。

8. 文档和示例代码:查阅STM8S105C6的数据手册和参考手册,以了解如何正确配置和使用PWM功能。此外,您还可以查找相关的示例代码,以帮助您解决问题。

总之,要解决STM8S105C6 PWM只有OCi输出而OCiN没有反应的问题,您需要仔细检查硬件连接、定时器配置、定时器通道配置、定时器时钟、中断处理、软件逻辑以及硬件故障。通过这些步骤,您应该能够找到并解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分