找回密码
 立即注册
查看: 15|回复: 2

STC8H4K64TLCD,P26,P27引脚无法输出PWM互补信号

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-18 16:30:48
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 昨天 16:30 | 显示全部楼层 |阅读模式


单片机型号:STC8H4K64TLCD
PWM互补输出测试
P20,P21测试正常
P26,P27 无PWM输出
//PWM 初始化

void PWM_init3(void)
{
        P_SW2 |= 0x80;  //扩展功能寄存器使能

        P2M0 |= 0xc0; P2M1 &= ~0xc0; //P26,P27  推挽输出

       
//        PWMA_ENO |= 0xC0;  //P27和P26脚的PWM4N和PWM4P 使能
        PWMA_ENO = 0xC0;
       
       
//        PWMA_PS |= (1<<6);  //PWA通道4  在P26,P27
        PWMA_PS = 0x40;
       
        PWM1-> PSCRH = 0x00; //预分频寄存器
        PWM1-> PSCRL = 0x00;
        PWM1-> DTR = 0x2C; //死区时间配置
        PWM1-> CCMR1 = 0x68; //通道模式配置
        PWM1-> CCMR1 = 0x68; //通道模式配置
       
        PWM1-> ARRH = 0x0A;  //高位     自动重装载寄存器,计数器 overflow 点
        PWM1-> ARRL = 0xCC;  //低位   ARRH ARRL  低电平维持时间
        PWM1-> CCR4H = 0x05; //高位   计数器比较值
        PWM1-> CCR4L = 0x34; //低位   CCR1HCCR1L高电平维持时间
       
        PWM1-> CCER1 = 0x55; //配置通道输出使能和极性
        PWM1-> BKR = 0x80; //主输出使能 相当于总开关
        PWM1-> CR1 = 0x01; //使能计数器
        EA = 1;        
}

//main.c

void main() //主函数
{
       
//        LED_Config();
        Timer0_Init();
        EA = 1;    //开总中断
        LED0 = 0;
        PWM_init3();

        while(1)
        {
                ;
        }               
}




回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-18 16:30:48
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 昨天 16:31 | 显示全部楼层
// P20,P21
void PWM_init3(void)
{
        P_SW2 |= 0x80;
       
        P2M0 |= 0x03; P2M1 &= ~0x03;



        PWMA_ENO = 0x03; //=0000 0011 P11和P10脚的PWM1N和PWM1P 使能   //  通道1使能
        PWMA_PS = 0x55;  //PW4\PW3\PW2在P2脚  PW1在P2脚 0101 0101
        /**********************************************************
        PWMx_duty = [CCRx/(ARR + 1)]*100
        ***********************************************************/
        PWM1-> PSCRH = 0x00; //预分频寄存器
        PWM1-> PSCRL = 0x00;
        PWM1-> DTR = 0x2C; //死区时间配置
        PWM1-> CCMR1 = 0x68; //通道模式配置
        //TIM1-> CCMR2 = 0x68;
        //TIM1-> CCMR3 = 0x68;

//        TIM1-> CCMR4 = 0x68;
//        TIM1-> ARRH = 0x04;  //高位     自动重装载寄存器,计数器 overflow 点
//        TIM1-> ARRL = 0x4C;  //低位   ARRH ARRL  低电平维持时间
//        TIM1-> CCR1H = 0x02; //高位   计数器比较值
//        TIM1-> CCR1L = 0x26; //低位   CCR1HCCR1L高电平维持时间
       
        //ARR 2764   CCRL 1332
        PWM1-> ARRH = 0x0A;  //高位     自动重装载寄存器,计数器 overflow 点
        PWM1-> ARRL = 0xCC;  //低位   ARRH ARRL  低电平维持时间
        PWM1-> CCR1H = 0x05; //高位   计数器比较值
        PWM1-> CCR1L = 0x34; //低位   CCR1HCCR1L高电平维持时间
       
       

        PWM1-> CCER1 = 0x55; //配置通道输出使能和极性
//        TIM1-> CCER2 = 0x55; //配置通道输出使能和极性
        PWM1-> BKR = 0x80; //主输出使能 相当于总开关
//        TIM1-> IER = 0x02; //使能中断
   PWM1-> CR1 = 0x1; //禁止计数器
        EA = 1;


}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:211
  • 最近打卡:2025-10-18 14:19:21

788

主题

1万

回帖

1万

积分

管理员

积分
19835
发表于 昨天 20:10 | 显示全部楼层

截图202510182009406125.jpg

截图202510182010517534.jpg

截图202510182008487490.jpg

截图202510182008204659.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-19 05:14 , Processed in 0.111789 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表