找回密码
 立即注册
查看: 207|回复: 4

STC8h4K64TL LQFP64 pwm输出问题 急

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-12-05 08:35:24
已绑定手机

1

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2025-12-5 08:35:24 | 显示全部楼层 |阅读模式
stc8h4k64tl lqfp48封装 现在想在第8脚即P1.4脚输出25k频率 占空比45% ,波形 ,初始化如下,但是输出io电平为0,帮忙分析下 急


// PWM硬件初始化
void PWM_Init_Adjustable(void) {
    // 1. 使能扩展寄存器访问
    P_SW2 |= 0x80;
   
    // 2. 配置P1.4为PWM3P输出
    P1M1 &= ~0x10;
    P1M0 |= 0x10;
    PWMA_PS &= ~0x30;      // PWM3映射到P1.4
   
    // 3. 配置PWM通道3
          PWMA_CCER1=0;
    PWMA_CCER1 &= 0xF0;    // 清零通道3配置
    PWMA_CCMR3 = 0x60;     // PWM模式1,预装载使能
    PWMA_CCER1 |= 0x02;    // 使能通道3输出
   
    // 4. 设置PWM周期(25kHz @ 11.0592MHz)
    PWMA_PSCRH = 0;
    PWMA_PSCRL = 0;
    PWMA_ARRH = (PWM_ARR_VALUE >> 8) & 0xFF;
    PWMA_ARRL = PWM_ARR_VALUE & 0xFF;
   
    // 5. 设置初始占空比
    PWM_Set_Duty(PWM_DEFAULT_CCR);
   
    // 6. 使能输出
    PWMA_BKR = 0x80;       // 主输出使能
//    PWMA_ENO |= 0x08;      // 使能PWM3P输出
                PWMA_ENO |= 0x10;      // 使能PWM3P输出
    PWMA_CR1 = 0x01;       // 启动计数器
}

// 设置占空比函数(核心函数)
void PWM_Set_Duty(unsigned short ccr_value) {
    // 限制CCR值在有效范围内
    if(ccr_value < PWM_MIN_CCR) ccr_value = PWM_MIN_CCR;
    if(ccr_value > PWM_MAX_CCR) ccr_value = PWM_MAX_CCR;
   
    // 更新PWM比较值(通道3)
    PWMA_CCR3H = (ccr_value >> 8) & 0xFF;
    PWMA_CCR3L = ccr_value & 0xFF;
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:401
  • 最近打卡:2026-05-08 09:46:24

850

主题

1万

回帖

2万

积分

管理员

积分
23212
发表于 2025-12-5 08:56:33 | 显示全部楼层
用 AiCube-ISP 图形化配置 PWM, 选择型号 STC8H8K64U,
另外 I/O 输出设置成 强推挽 或者 准双向口,

否则 上电复位后是 高阻输入,无法输出
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:674
  • 最近打卡:2026-05-08 09:06:14
已绑定手机

52

主题

2618

回帖

9119

积分

论坛元老

积分
9119
发表于 2025-12-5 09:00:06 | 显示全部楼层
第3步这个寄存器设置错了,通道3使能在PWMA_CCER2,不是PWMA_CCER1:
PWMA_CCER1 |= 0x02;    // 使能通道3输出
截图202512050858005224.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:340
  • 最近打卡:2026-05-08 10:33:48

85

主题

7361

回帖

1万

积分

超级版主

积分
15901
发表于 2025-12-5 10:31:48 | 显示全部楼层
电话里我都说了,拿一个我的例子去掉3个通道就OK了:
先别修改程序, 直接下载"01A-PWMA-4对互补PWM输出P1口"里的"pwm.hex"测试, 下载时输入主频25.6MHz,别的主频输出PWM频率按比例变化,按你的要求,程序改为仅从P1.4输出25KHz、45%的占空比的PWM。
下载到STC8H4K64TL运行实测输出波形照片,可见输出的PWM周期是5*8=40us即25KHz,高电平18us即45%。
截图202512051030213832.jpg

源码和编译好的HEX文件:
01A-PWMA-4对互补PWM输出P1口.rar (53.93 KB, 下载次数: 4)

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-12-05 08:35:24
已绑定手机

1

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2025-12-5 11:09:02 | 显示全部楼层
已经可以实现PWM输出了感谢STC 技术支持!
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-9 05:48 , Processed in 0.143523 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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