找回密码
 立即注册
查看: 344|回复: 1

PWM 库函数使用问题

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-03-28 11:36:20

8

主题

42

回帖

384

积分

中级会员

积分
384
发表于 2024-6-1 23:17:21 | 显示全部楼层 |阅读模式
原有官方库函数结构体如下:


typedef struct
{
        u8        PWM_Mode;                        //模式,   CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
        u16        PWM_Period;                //周期时间,   0~65535
        u16        PWM_Duty;                        //占空比时间, 0~Period
        u8        PWM_DeadTime;        //死区发生器设置, 0~255
//        u8        PWM_Reload;                                //输出比较的预装载使能,   ENABLE,DISABLE
//        u8        PWM_Fast;                                        //输出比较快速功能使能,   ENABLE,DISABLE
//        u8        PWM_PreLoad;                        //预装载,     ENABLE,DISABLE
//        u8        PWM_BrakeEnable;        //刹车输入使能,  ENABLE,DISABLE
        u8        PWM_EnoSelect;                //输出通道选择,        ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
        u8        PWM_CEN_Enable;                //使能计数器, ENABLE,DISABLE
        u8        PWM_MainOutEnable;//主输出使能,  ENABLE,DISABLE
} PWMx_InitDefine;

typedef struct
{
        u16        PWM1_Duty;                        //PWM1占空比时间, 0~Period
        u16        PWM2_Duty;                        //PWM2占空比时间, 0~Period
        u16        PWM3_Duty;                        //PWM3占空比时间, 0~Period
        u16        PWM4_Duty;                        //PWM4占空比时间, 0~Period
        u16        PWM5_Duty;                        //PWM5占空比时间, 0~Period
        u16        PWM6_Duty;                        //PWM6占空比时间, 0~Period
        u16        PWM7_Duty;                        //PWM7占空比时间, 0~Period
        u16        PWM8_Duty;                        //PWM8占空比时间, 0~Period
} PWMx_Duty;


进行调用:

#include "STC8H_PWM.h" // 确保这个头文件包含了PWM相关的所有定义

int pwm_inint() // 假设这个函数是PWM初始化的入口函数
{
    // 初始化PWM3_Init结构体
    PWMx_InitDefine PWM3_Init =
    {
        .PWM_Mode = CCMRn_PWM_MODE1, // 假设PWM_Mode_1是PWM3的模式
        .PWM_EnoSelect = ENO3P,      // 假设启用PWM3的正输出
        .PWM_Duty = 50,              // PWM3占空比设置为50%
        // 其他成员根据需要进行设置
    };

    // 调用PWM_Configuration函数初始化PWM3,并存储返回结果
    u8 PWM3_Init_Result = PWM_Configuration(PWM3, &PWM3_Init);

    // 返回初始化结果
    // 如果PWM_Configuration返回SUCCESS,则返回0表示成功
    // 否则,返回-1或者其他错误代码
    return (PWM3_Init_Result == SUCCESS) ? 0 : -1;
}

编译出现错误:
STC8H_PWM.c(344): error C141: syntax error near '.', expected 'sizeof'

这是啥问题
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-03 00:02:01
已绑定手机

19

主题

3191

回帖

4876

积分

论坛元老

积分
4876
发表于 2024-6-3 15:44:00 | 显示全部楼层
PWMx_InitDefine PWM3_Init数据结果
.PWM_Mode这个要加数据结构前缀 PWM3_Init.PWM_Mode像这样
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 12:46 , Processed in 0.104517 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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