无法将C结构传递给函数

时间:2012-11-12 03:28:16

标签: c struct

我在将结构传递给函数时遇到了麻烦,我遇到了错误:

  

'PWM_PINS'未声明(首次使用此功能)

我通常能够毫无困难地在C ++编译器中执行此操作。对于我在这里做错了什么,我将不胜感激。

我已经在下面的标题和c文件中包含了相关部分。

pwm.h文件:

typedef struct PWM_tag{
    int PWM_1;
    int PWM_2;
    int PWM_3;
    int PWM_4;
    int PWM_5;
    int PWM_6;
} PWM;

void PWM_Set( uint32_t channelNum, uint32_t cycle, PWM PWN_PINS );

pwm.c文件:

#include "pwm.h"
 void PWM_Set( uint32_t ChannelNum, uint32_t cycle, PWM PWN_PINS)
    {
        if ( ChannelNum == 1 )
        {
            LPC_PWM1->MR0 = cycle;
            LPC_PWM1->MR1 = PWM_PINS.PWM_1;
            LPC_PWM1->MR2 = PWM_PINS.PWM_2;
            LPC_PWM1->MR3 = PWN_PINS.PWM_3;
            LPC_PWM1->MR4 = PWM_PINS.PWM_4;
            LPC_PWM1->MR5 = PWM_PINS.PWM_5;
            LPC_PWM1->MR6 = PWM_PINS.PWM_6;

        }
        return;
    }

2 个答案:

答案 0 :(得分:4)

您声明了一个名为PWN_PINS的参数(带有N),但您指的是PWM_PINSM}。

解决此错误将解决此特定错误。但可能会有更多错误 - 很难说,因为代码段没有显示必要的部分,例如LPC_PWM1变量的声明。

答案 1 :(得分:2)

代码中是否有拼写错误?

函数参数是 PWN_PINS 。但代码有5 PWM_PINS ,还有一个 PWN_PINS

我认为您应该做的是将所有 PWN_PINS 更改为 PWM_PINS