关于STM8S207输出互补PWM的问题??

2019-03-23 19:04发布

本人使用STM8S207RB(LQFP-64)为主芯片的开发板,使用TIM1的OC1和OC1N输出一对互补的PWM信号,但是使用逻辑分析仪查看输出的信号,OC1引脚输出信号正常,但是OC1N引脚输出始终为低电平。
OC1引脚为PC1,OC1N引脚为PB0/AIN0,所使用引脚均为直接引出。

程序的代码如下:
#include "stm8s207r.h"
#include <interrupt.h>        // 声明中断服务函数

/* 函数声明----------------------------------------------------------------------*/
/* TIM1_PWM初始化 */
void TIM1_PWM_init(void);

void main(void)
{
        TIM1_PWM_init();
        while(1);
}

/* 函数定义----------------------------------------------------------------------*/
/****
* 函数功能: TIM1_PWM初始化
* 参数: 无
* 返回值: 无
*/
void TIM1_PWM_init(void)
{
        TIM1_ARRH = (6000 >> 8);        // 计数周期
        TIM1_ARRL = (6000 << 8) >> 8;
        TIM1_CCR1H = (3000 >> 8);        // TIM1比较/捕获寄存器1
        TIM1_CCR1L = (3000 << 8) >> 8;
        TIM1_PSCRH = 0;                // 分频比
        TIM1_PSCRL = 2;
       
        TIM1_CR1 |= 0x20;        // CMS(01) : Center-aligned mode 1
        TIM1_CR1 |= 0x80;        // set ARPE
        TIM1_CCMR1 |= 0x60;        // OC1M(110) : PWM Mode 1
        TIM1_CCMR1 |= 0x08;        // set OC1PE
        TIM1_CCER1 |= 0x01;        // set CC1E
        TIM1_CCER1 |= 0x08;        // set CC1NP
        TIM1_CCER1 |= 0x04;        // set CC1NE
        TIM1_CR2 |= 0x01;        // set CCPC
        TIM1_EGR |= 0x20;        // set COMG
        TIM1_DTR = 0x27;        // Deadtime generator
        TIM1_BKR |= 0x08;        // set OSSR
        TIM1_BKR |= 0x80;        // set MOE
        TIM1_CR1 |= 0x01;        // 开启计数器
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
ben001
1楼-- · 2019-03-24 02:24
/ 有人知道怎么解决吗??
安_然
2楼-- · 2019-03-24 04:27
 精彩回答 2  元偷偷看……
ben001
3楼-- · 2019-03-24 05:08
设置TIM1_CCER1 |= 0x02;        // set CC1P也为高有效,这样就能输出互补PWM了?
hkdzzy
4楼-- · 2019-03-24 05:29
现在CC1N能输出PWM波吗?求指教
JIAndanai
5楼-- · 2019-03-24 09:53
 精彩回答 2  元偷偷看……

一周热门 更多>