lier378912453 发表于 2024-6-1 23:17:20

PWM 库函数使用问题

原有官方库函数结构体如下:


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'

这是啥问题

xiangzichen 发表于 2024-6-2 09:33:53

我c是自学的,好多高级的用法不怎么会,,,结构体有这种赋值方式么???



海底的龙 发表于 2024-6-4 21:53:36

本帖最后由 海底的龙 于 2024-6-4 21:55 编辑

你得用他给的别名定义一个值

Yim_Hom 发表于 2024-6-4 23:06:36

帮您举个例子,结构体这样来用。
页: [1]
查看完整版本: PWM 库函数使用问题