- 打卡等级:偶尔看看III
- 打卡总天数:56
- 最近打卡:2025-11-01 12:17:15
已绑定手机
金牌会员
- 积分
- 1050
|
void PWMA_Config(void)
{
//PWMA_PS = 0x01; //PWM1P引脚切换到P2.0
PWMA_PS = 0x00; //通道1PWM1P引脚切换到P1.0,1N脚P1.1,通道2输出脚
//默认PWM2P脚P1.2,PWM2N脚P1.3
PWMA_PSCRH = (u16)(PWM_PSC >> 8);
PWMA_PSCRL = (u16)(PWM_PSC); //119+1=120预分频
PWMA_CCR1H = (u16)(PWM_PERIOD >> 8); // 设置初始占空比100%,LED熄灭
PWMA_CCR1L = (u16)(PWM_PERIOD);
PWMA_ARRH = (u16)(PWM_PERIOD >> 8); // 设置PWM周期
PWMA_ARRL = (u16)(PWM_PERIOD);
PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCERx 关闭通道cc1
PWMA_CCER2 = 0x00; //写 CCMRx 前必须先清零 CCERx 关闭通道cc3
PWMA_CCMR1 = 0x60; // 设置 CC1 为 PWMA 输出模式,PWM模式1
PWMA_CCMR2 = 0x60; // 设置 CC3 为 PWMA 输出模式,PWM模式1
//PWMA_CCER1 |= 0x01; // 使能 CC1 通道,01就只有单路输出P1.0
PWMA_CCER1 |= 0x05; // 使能 OC1 通道,开启输出比较通道,双路互补输出
PWMA_CCER1 |= 0x50; // //打开oc2通道使能,开启输出比较通道,双路互补输出
//PWMA_CCER1 |= 0x08; //加这句是启输出比较通道,把双路互补输出改双路同向输出
//PWMA_CCER2 |= 0x08; //加这句是启输出比较通道,把双路互补输出改双路同向输出
//方便看到LED亮
PWMA_ENO |= 0X0F; //使能PWM2n通道输出(P1.0---P1.3)
PWMA_BKR = 0x80; // 使能主输出
PWMA_IER = 0x01; // 使能更新中断
PWMA_CR1 = 0x01; // 启动PWM定时器,向上计数模式
}
2句黑色的肯定是错的,通道1是可以正常运行的,按道理我们加了:
PWMA_CCER1 |= 0x50; // //打开oc2通道使能,开启输出比较通道,双路互补输出
PWMA_ENO |= 0X0F; //使能PWM2n通道输出(P1.0---P1.3)
再加上默认:
PWMA_PS = 0x00; //通道1PWM1P引脚切换到P1.0,1N脚P1.1,通道2输出脚
//默认PWM2P脚P1.2,PWM2N脚P1.3
应该P0---P3 这4个LED都是呼吸灯啊?我不知道哪里没有设置对。。。。。。。。。。。
|
|