PWM输出初始化问题,为什么我将STC8H8K64U的PWM1映射到P2.0脚无法使用,映射到P1.0就
我需要同时启动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; //开始计时
} PWMA_PS &= 0x3d; //这条指令后面再加一条
PWMA_PS |= 0x01; //这样才能将PWM1映射到P2.0,P2.1 乘风飞扬 发表于 2026-4-1 11:46
PWMA_PS &= 0x3d; //这条指令后面再加一条
PWMA_PS |= 0x01; //这样才能将PWM1映射到P2.0,P2.1 ...
谢谢,晚上回去试试
页:
[1]