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

PWM输出初始化问题,为什么我将STC8H8K64U的PWM1映射到P2.0脚无法使用,映射到P1.0就

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:661
  • 最近打卡:2026-04-03 10:25:18

9

主题

87

回帖

707

积分

高级会员

积分
707
发表于 3 天前 | 显示全部楼层 |阅读模式
我需要同时启动PWM4和PWM1输出,为什么PWM4初始化配置P1.6脚正常输出,PWM1配置P2.0无法输出,将功能脚映射改为P1.0又行了,初始化代码如下:
  1. void PWM_Init(void){
  2. // 配置P1.6 PWM4P输出,P2.0 PWM1P/2输出
  3.        
  4. PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道,控制PWM1       
  5. PWMA_CCER2 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道,控制PWM4
  6.        
  7. PWMA_CCMR1 = 0x60; //设置 PWM1P 模式1 输出               
  8. PWMA_CCMR4 = 0x60; //设置 PWM4P 模式1 输出
  9.        
  10. PWMA_CCER1 = 0x01; // 仅使能CC1E(PWM1P输出)
  11. PWMA_CCER2 = 0x10; // 仅使能CC4E(PWM4P输出)
  12.        
  13. PWMA_CCMR1 |= 0x08; //输出比较预装载使能(CCxE为1才可写)       
  14. PWMA_CCMR4 |= 0x08; //输出比较预装载使能(CCxE为1才可写)
  15. PWMA_ARR = PWM_ARR_VALUE;            // 设置PWM周期(自动重装值)       
  16.        
  17. PWMA_CCR1 = ccr1_value;       //设置占空比时间,捕获比较寄存器1                       
  18. PWMA_CCR4 = ccr4_value;       //设置占空比时间,捕获比较寄存器4       
  19. PWMA_PS &= 0x3d; //通道使能位PWM4 映射为P1.6,P1.7,使能PWM1 映射为p2.0,p2.1
  20. PWMA_ENO = 0x41; //输出使能PWM4P 即P1.6,使能PWM1P/2 即P2.0
  21. PWMA_BKR = 0x80; //使能主输出
  22. PWMA_CR1 |= 0x01; //开始计时               
  23. }
复制代码
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:654
  • 最近打卡:2026-04-03 10:02:32
已绑定手机

52

主题

2546

回帖

8932

积分

论坛元老

积分
8932
发表于 3 天前 | 显示全部楼层
PWMA_PS &= 0x3d;    //这条指令后面再加一条
PWMA_PS |= 0x01;    //这样才能将PWM1映射到P2.0,P2.1
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:661
  • 最近打卡:2026-04-03 10:25:18

9

主题

87

回帖

707

积分

高级会员

积分
707
发表于 3 天前 | 显示全部楼层
乘风*** 发表于 2026-4-1 11:46
PWMA_PS &= 0x3d;    //这条指令后面再加一条
PWMA_PS |= 0x01;    //这样才能将PWM1映射到P2.0,P2.1 ...

谢谢,晚上回去试试
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-4 17:44 , Processed in 0.107175 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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