找回密码
 立即注册
查看: 84|回复: 5

为什么观测不到PWM波形

[复制链接]
  • TA的每日心情

    4 天前
  • 签到天数: 60 天

    [LV.6]常住居民II

    28

    主题

    46

    回帖

    488

    积分

    中级会员

    积分
    488
    发表于 2024-4-2 17:51:05 | 显示全部楼层 |阅读模式
    本帖最后由 cjtdz 于 2024-4-2 17:52 编辑

    网上买的STC32单片机实验板,写入”布丁橘长的084-高级PWM定时器-互补输出和死区插入-PWM1P,PWM1N互补输出“十六进制文件后,为什么在STC32G12K128芯片的P1.0/P1.1脚上,用示波器观察不到PWM波形?
    原文:
    //        @布丁橘长 2023/03/03
    //        PWMA互补输出示例,PWM1P、PWM1N(P1.0、P1.1)输出一组互补对称波形,周期200us,占空比50%
    //        实验开发板:STC32G12K128屠龙刀三.1 主频@12MHz

    #include <STC32G.H>
    #include "config.h"

    #define PWM_PSC                 (12-1)                //12分频,时钟周期1us
    #define PWM_PERIOD         200                                //周期200us
    #define PWM_DUTY    100                                //占空100us

    void PWMA_Config(void);                                //PWMA初始化设置函数

    void main(void)
    {
            EAXFR = 1;                                                                         // 使能访问 XFR
            CKCON = 0x00;                                                         // 设置外部数据总线速度为最快
            WTST = 0x00;                                                                // 设置程序代码等待参数,等待时间为0个时钟,CPU执行程序速度最快

            P0M1 = 0x00;P0M0 = 0x00;                //设置P0口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P1M1 = 0x00;P1M0 = 0x00;                //设置P1口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P2M1 = 0x00;P2M0 = 0x00;                //设置P2口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P3M1 = 0x00;P3M0 = 0x00;                //设置P3口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P4M1 = 0x00;P4M0 = 0x00;                //设置P4口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P5M1 = 0x00;P5M0 = 0x00;                //设置P5口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P6M1 = 0x00;P6M0 = 0x00;                //设置P6口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
            P7M1 = 0x00;P7M0 = 0x00;                //设置P7口为准双向口模式 //00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
           
            PWMA_Config();                                                        //PWMA初始化设置
           
            while (1);
    }
    void PWMA_Config(void)
    {
            PWMA_PSCRH = (u16)(PWM_PSC >> 8);
            PWMA_PSCRL = (u16)(PWM_PSC);                                 //预分频
           
            PWMA_CCER1 = 0x00;                                                                         // 写 CCMRx 前必须先清零 CCERx 关闭通道
            PWMA_CCMR1 = 0x60;                                                                         // 设置 CC1 CC1N为 PWMA 输出模式,PWM模式1
            PWMA_CCER1 = 0x05;                                                                         // 使能 CC1 CC1N通道
           
            PWMA_CCR1H = (u16)(PWM_DUTY>> 8);                // 设置初始占空
            PWMA_CCR1L = (u16)(PWM_DUTY);
           
            PWMA_ARRH = (u16)(PWM_PERIOD >> 8); // 设置PWM周期
            PWMA_ARRL = (u16)(PWM_PERIOD);
           
            PWMA_ENO = 0x03;                                                                                 // 使能 PWM1P PWM1N端口输出
            PWMA_BKR = 0x80;                                                                                // 使能主输出
           
            PWMA_CR1 = 0x01;                                                                                 // 启动PWMA定时器
    }

    微信图片_20240402174225.jpg

    084-高级PWM定时器-互补输出和死区插入-PWM1P,PWM1N互补输出.zip

    417.53 KB, 下载次数: 2

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:38
  • 签到天数: 66 天

    [LV.6]常住居民II

    2

    主题

    113

    回帖

    526

    积分

    高级会员

    积分
    526
    发表于 2024-4-2 20:59:55 来自手机 | 显示全部楼层
    先用官方例程试试…
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    4 天前
  • 签到天数: 60 天

    [LV.6]常住居民II

    28

    主题

    46

    回帖

    488

    积分

    中级会员

    积分
    488
     楼主| 发表于 2024-4-2 22:13:03 | 显示全部楼层
    wan123456 发表于 2024-4-2 20:59
    先用官方例程试试…

    就是没动啊
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:38
  • 签到天数: 66 天

    [LV.6]常住居民II

    2

    主题

    113

    回帖

    526

    积分

    高级会员

    积分
    526
    发表于 2024-4-3 10:32:02 来自手机 | 显示全部楼层
    没有动的话就比对下手册…一个型号的才可以…
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    661

    回帖

    1118

    积分

    超级版主

    积分
    1118
    发表于 2024-4-3 15:28:46 | 显示全部楼层
    STC32G-高级PWM范例程序大礼包来啦!建议先用官网范例程序测试

    截图202404031527525422.jpg


    【新提醒】STC32G-高级PWM范例程序下载 - BLDC/144MHz时钟源PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区  https://www.stcaimcu.com/forum.p ... 1778&extra=page%3D1


    STC32G-高级PWM相关程序.rar

    1.03 MB, 下载次数: 2

    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    4 天前
  • 签到天数: 60 天

    [LV.6]常住居民II

    28

    主题

    46

    回帖

    488

    积分

    中级会员

    积分
    488
     楼主| 发表于 2024-4-3 16:19:25 | 显示全部楼层
    搞好了,是写入到文件搞错了
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 15:04 , Processed in 0.063431 second(s), 51 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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