【问题标题】:Unable to pass C struct into function无法将 C 结构传递给函数
【发布时间】:2012-11-12 03:28:15
【问题描述】:

我在将结构传递给函数时遇到问题,并且遇到了错误:

'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;
    }

【问题讨论】:

    标签: c struct


    【解决方案1】:

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

    修正此错字将解决此特定错误。不过可能还有更多错误 - 很难说,因为 sn-p 没有显示基本部分,例如 LPC_PWM1 变量的声明。

    【讨论】:

    • 谢谢!哇...非常尴尬,但你可能为我节省了一个多小时用头撞桌子的时间:)
    • @stephf0716 没关系,这样的事情发生在我身上的次数比我愿意承认的要多:)
    【解决方案2】:

    代码中是否有拼写错误?

    函数参数为PWN_PINS。但代码有5个PWM_PINS,1个PWN_PINS

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多