-1

我有下面我正在尝试构建的代码

#include stdio.h
#include stdlib.h
#include signal.h
#include wiringPi.h
#include softPwm.h

void control_event(int sig);
int HARD_PWM_PIN=1; Hardware PWM Pin(GPIO18-12)
int SOFT_PWM_PIN=0; Software PWM Pin(GPIO0-11)
int DELAY_MS=10;
int main(void)
{
  (void)signal(SIGINT,control_event);
  (void)signal (SIGQUIT,control_event);
  printf(Hardware and software based PWM test on LEDn);
  if(getuid()!=0) wiringPi requires root privileges
  {
    printf(ErrorwiringPi must be run as root.n);
    return 1;
  }
  if(wiringPiSetup()==-1)
  {
    printf(ErrorwiringPi setup failed.n);
    return 1;
  }
  pinMode(HARD_PWM_PIN,PWM_OUTPUT); setup hardware pwm
  softPwmCreate(SOFT_PWM_PIN,0,100); setup software pwm pin
  int up;
  int down;
  while(1)
  {
    for(up=1;up=5;down--)
    {
      pwmWrite(HARD_PWM_PIN,down);
      softPwmWrite(SOFT_PWM_PIN,down);
      delay(DELAY_MS2);
    }
    delay(DELAY_MS5);
  }
}
void control_event(int sig)
{
  printf(bbExiting...n);
  pwmWrite(HARD_PWM_PIN,0);
  softPwmWrite(SOFT_PWM_PIN,0);
  delay(100); wait a little for the pwm to finish write
  exit(0);
}

但是我不断收到以下错误,这只是其中的一部分,但它们与奇数符号和数字几乎相同。

test1.c:20:1: error: stray â\302â in program
test1.c:20:1: error: stray â\240â in program
test1.c:21:1: error: stray â\302â in program
test1.c:21:1: error: stray â\240â in program
test1.c:22:1: error: stray â\302â in program
test1.c:22:1: error: stray â\240â in program
test1.c:23:1: error: stray â\302â in program
test1.c:23:1: error: stray â\240â in program
test1.c:23:1: error: stray â\302â in program
test1.c:23:1: error: stray â\240â in program
test1.c:24:1: error: stray â\302â in program
test1.c:24:1: error: stray â\240â in program
test1.c:24:1: error: stray â\302â in program
test1.c:24:1: error: stray â\240â in program
test1.c:25:1: error: stray â\302â in program
test1.c:25:1: error: stray â\240â in program
test1.c:26:1: error: stray â\302â in program
test1.c:26:1: error: stray â\240â in program
test1.c:26:38: error: unknown type name âsetupâ
test1.c:26:53: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âpwmâ

有什么问题?我从中获取此代码的地方是这里

4

2 回答 2

3

你有一些语法错误 -

  • 除此之外,您的编辑器包含 unicode 字符而不是 gcc 预期的 ASCII。- "作为后向双引号或前向双引号而不是 ASCII 34 的可能示例。

当您使用非西方字符集或扩展 unicode 作为默认编码时,您必须小心您的编辑器设置。

这也是为什么 " 字符不会出现在您的帖子中的原因。

于 2013-02-24T04:29:23.853 回答
3

奇数符号和数字是因为文件中的某些空格实际上不是空格。复制和粘贴后,查看链接中文件中的某些行:

'void control_event(int sig);\n'
'int HARD_PWM_PIN=1; //Hardware PWM Pin(GPIO18-12)\n'
'int SOFT_PWM_PIN=0; //Software PWM Pin(GPIO0-11)\n'
'int DELAY_MS=10;\n'
'int main(void)\n'
'{\n'
'\xc2\xa0 (void)signal(SIGINT,control_event);\n'
'\xc2\xa0 (void)signal (SIGQUIT,control_event);\n'
'\xc2\xa0 printf("Hardware and software based PWM test on LED\\n");\n'
'\xc2\xa0 if(getuid()!=0) //wiringPi requires root privileges\n'

这些\xc2\xa0s 是不间断的空格字符 (  ),或302/240八进制。

另请注意,您似乎//在传输过程中丢失了几个注释标记 ( ),这会导致其自身的不同问题,因为编译器试图将注释解释为代码。

于 2013-02-24T04:29:57.077 回答