- 打卡等级:常住居民III
- 打卡总天数:115
- 最近打卡:2025-03-28 11:36:20
中级会员
- 积分
- 384
|
原有官方库函数结构体如下:
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'
这是啥问题
|
|