2012-11-12 142 views
2

我在傳遞一個結構到功能麻煩,我遇到了一個錯誤:無法C結構傳遞到功能

'PWM_PINS' undeclared (first use in this function)

我通常能夠做到這一點的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

你宣佈一個名爲PWN_PINS(與N)參數,但你是指PWM_PINS (與M)。

修復此錯字將解決此特定錯誤。儘管可能有更多的錯誤 - 很難說,因爲該片段沒有顯示必要的部分,例如LPC_PWM1變量的聲明。

+0

謝謝!哇......非常尷尬,但你可能救了我一個小時,把我的頭撞在桌子上:) – stephf0716

+0

@ stephf0716沒關係,像這樣的事情發生在我身上的次數超過了我願意承認:) – dasblinkenlight

2

代碼中是否存在拼寫錯誤?

的功能參數是PWN_PINS。但代碼已經5個PWM_PINS,和一個PWN_PINS

我認爲你應該做的是將所有PWN_PINS改爲PWM_PINS