我需要同时启动PWM4和PWM1输出,为什么PWM4初始化配置P1.6脚正常输出,PWM1配置P2.0无法输出,将功能脚映射改为P1.0又行了,初始化代码如下:
- void PWM_Init(void){
-
- // 配置P1.6 PWM4P输出,P2.0 PWM1P/2输出
-
- PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道,控制PWM1
- PWMA_CCER2 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道,控制PWM4
-
- PWMA_CCMR1 = 0x60; //设置 PWM1P 模式1 输出
- PWMA_CCMR4 = 0x60; //设置 PWM4P 模式1 输出
-
- PWMA_CCER1 = 0x01; // 仅使能CC1E(PWM1P输出)
- PWMA_CCER2 = 0x10; // 仅使能CC4E(PWM4P输出)
-
- PWMA_CCMR1 |= 0x08; //输出比较预装载使能(CCxE为1才可写)
- PWMA_CCMR4 |= 0x08; //输出比较预装载使能(CCxE为1才可写)
-
- PWMA_ARR = PWM_ARR_VALUE; // 设置PWM周期(自动重装值)
-
- PWMA_CCR1 = ccr1_value; //设置占空比时间,捕获比较寄存器1
- PWMA_CCR4 = ccr4_value; //设置占空比时间,捕获比较寄存器4
-
- PWMA_PS &= 0x3d; //通道使能位PWM4 映射为P1.6,P1.7,使能PWM1 映射为p2.0,p2.1
- PWMA_ENO = 0x41; //输出使能PWM4P 即P1.6,使能PWM1P/2 即P2.0
-
- PWMA_BKR = 0x80; //使能主输出
- PWMA_CR1 |= 0x01; //开始计时
- }
复制代码
|