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

AI8H8K64U的PWM怎么用

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-04-07 16:08:49
已绑定手机

1

主题

0

回帖

9

积分

新手上路

积分
9
发表于 2026-4-7 16:17:20 | 显示全部楼层 |阅读模式
AI8H8K64U-20管脚的PWM怎么用?程序如下,目标实现PWM3P输出脉宽和频率可调的PWM波做DAC,现在可以实现PWM1P输出但PWM3P没有输出。请问大神怎么改。


#include "AI8H.h"
#include "intrins.h"
#include "IO_init.h"


void main()
{
                IO_init();

    P_SW2 = 0x80;
                PWMA_PS &= ~0x30;                                                //PWM3: PWM3P(P1.4), PWM3N(P1.5)

/*       
    PWMA_CCER1 = 0x00;                          //дCCMRxǰ±ØÐëÏÈÇåÁãCCERx¹Ø±ÕͨµÀ
    PWMA_CCMR1 = 0x60;                          //ÉèÖÃCC1ΪPWMAÊä³öģʽ
    PWMA_CCER1 = 0x01;                          //ʹÄÜCC1ͨµÀ
    PWMA_CCR1 = 2500;                           //ÉèÖÃÕ¼¿Õ±Èʱ¼ä£¬50%
    PWMA_ARR = 11000;                           //ÉèÖÃÖÜÆÚʱ¼ä
    PWMA_ENO = 0x01;                            //ʹÄÜPWM1P¶Ë¿ÚÊä³ö
    PWMA_BKR = 0x80;                            //ʹÄÜÖ÷Êä³ö
    PWMA_CR1 = 0x01;                            //¿ªÊ¼¼ÆÊ±
*/

    PWMA_CCER1 = 0x00;                          //дCCMRxǰ±ØÐëÏÈÇåÁãCCERx¹Ø±ÕͨµÀ
    PWMA_CCMR1 = 0x60;                          //ÉèÖÃCC1ΪPWMÊä³öģʽ1
    PWMA_CCER1 = 0x01;                          //ʹÄÜCC1ͨµÀ
               
    PWMA_CCER2 = 0x00;                          //дCCMRxǰ±ØÐëÏÈÇåÁãCCERx¹Ø±ÕͨµÀ
    PWMA_CCMR1 = 0x60;                          //ÉèÖÃCC1ΪPWMÊä³öģʽ1
    PWMA_CCER2 = 0x01;                          //ʹÄÜCC1ͨµÀ
               
    PWMA_CCR1 = 2500;                           //ÉèÖÃÕ¼¿Õ±Èʱ¼ä£¬50%
    PWMA_ARR = 11000;                           //ÉèÖÃÖÜÆÚʱ¼ä
    PWMA_ENO = 0x11;                            //ʹÄÜPWM3P,PWM1P¶Ë¿ÚÊä³ö
    PWMA_BKR = 0x80;                            //ʹÄÜÖ÷Êä³ö
    PWMA_CR1 = 0x01;                            //¿ªÊ¼¼ÆÊ±
               

                while (1);
}

回复

使用道具 举报 送花

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

850

主题

1万

回帖

2万

积分

管理员

积分
23212
发表于 2026-4-7 16:27:07 | 显示全部楼层
回复

使用道具 举报 送花

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

52

主题

2618

回帖

9119

积分

论坛元老

积分
9119
发表于 2026-4-7 16:33:58 | 显示全部楼层
可参考8H实验箱例程包里面的PWM例子:https://www.stcai.com/syx
  1.     PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
  2.     PWMA_CCER2 = 0x00;
  3.     PWMA_CCMR1 = 0x60; //PWM1通道模式配置
  4.     PWMA_CCMR2 = 0x60; //PWM2通道模式配置
  5.     PWMA_CCMR3 = 0x60; //PWM3通道模式配置
  6.     PWMA_CCMR4 = 0x60; //PWM4通道模式配置
  7.     PWMA_CCER1 = 0x55; //配置通道输出使能和极性
  8.     PWMA_CCER2 = 0x55;
  9.     PWMA_CCMR1 |= 0x08; //开启PWMA_CCRx预装载功能(需要CCxE=1才可写)
  10.     PWMA_CCMR2 |= 0x08;
  11.     PWMA_CCMR3 |= 0x08;
  12.     PWMA_CCMR4 |= 0x08;
  13.     PWMA_ARRH = (u8)(PWM_PERIOD >> 8); //设置周期时间
  14.     PWMA_ARRL = (u8)PWM_PERIOD;
  15.     PWMA_ENO = 0x00;
  16.     PWMA_ENO |= ENO1P; //使能输出
  17.     PWMA_ENO |= ENO1N; //使能输出
  18.     PWMA_ENO |= ENO2P; //使能输出
  19.     PWMA_ENO |= ENO2N; //使能输出
  20.     PWMA_ENO |= ENO3P; //使能输出
  21.     PWMA_ENO |= ENO3N; //使能输出
  22.     PWMA_ENO |= ENO4P; //使能输出
  23.     PWMA_ENO |= ENO4N; //使能输出
  24.     PWMA_PS = 0x00;  //高级 PWM 通道输出脚选择位
  25.     PWMA_PS |= PWM1_3; //选择 PWM1_3 通道
  26.     PWMA_PS |= PWM2_3; //选择 PWM2_3 通道
  27.     PWMA_PS |= PWM3_3; //选择 PWM3_3 通道
  28.     PWMA_PS |= PWM4_3; //选择 PWM4_3 通道
  29.     PWMA_BKR = 0x80; //使能主输出
  30.     PWMA_CR1 |= 0x01; //开始计时
复制代码
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-9 05:41 , Processed in 0.111988 second(s), 56 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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