2

構造体を関数に渡すのに問題があり、エラーが発生しています。

「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;
    }
4

2 に答える 2

4

PWN_PINS(で)というパラメータを宣言しましたが、 (でN)を参照しています。PWM_PINSM

このタイプミスを修正すると、この特定のエラーに対処できます。LPC_PWM1ただし、さらにエラーが発生する可能性があります。スニペットには変数の宣言などの重要な部分が表示されないため、わかりにくいです。

于 2012-11-12T03:29:37.963 に答える
2

コードにスペルミスはありませんか?

関数パラメータはPWN_PINSですが、コードには 5つのPWM_PINSと 1 つのPWN_PINSがあります。

あなたがすべきことは、すべてのPWN_PINSPWM_PINSに変更することだと思います。

于 2012-11-12T03:45:29.903 に答える