问题是:1、LED+蜂鸣器:
初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)
/*
1、LED+蜂鸣器:
初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)。
*/
#include "2410lib.h"
#include "2410addr.h"
#include "def.h"
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <errno.h>
#include <linux/input.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <stdbool.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <string.h>
#define TEST_MAGIC 'x'
#define TEST_MAX_NR 4
#define LED1 _IO(TEST_MAGIC, 0)
#define LED2 _IO(TEST_MAGIC, 1)
#define LED3 _IO(TEST_MAGIC, 2)
#define LED4 _IO(TEST_MAGIC, 3)
#define LED(i) _IO(TEST_MAGIC, i)//做循环用
//控制灯开关
int openorcloseLed();//控制灯全开或全关 ,正常返回1,错误返回-1
int openorcloseLed(int arg){
int fd;
fd = open("/dev/Led",O_RDWR);
if(fd<0)
{
printf("打开驱动文件失败,请检查是否有该驱动或者路径是否正确\n");
return -1;
}
for(int i=0;i<4;i++){
ioctl(fd, LED(i), arg);
}
return 1;
}
//---------------------------------------------------------------------------
int main()
{
/*
1、LED+蜂鸣器:
初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)。)
*/
openorcloseLed(1);//LED全灭
//--------------------------------------------------------------------
for(int i=0;i<=3;i++){
rGPBCON= rGPBCON& 0Xfffffc | 1;
rGPBDAT &=0xFFFFFE;
rGPBDAT | =1;
sleep(1);
}
ioctl(fd,LED1,0);
sleep(1);
ioctl(fd,LED1,1);
ioctl(fd,LED2,0);
sleep(1);
ioctl(fd,LED2,1);
ioctl(fd,LED3,0);
sleep(1);
ioctl(fd,LED3,1);
ioctl(fd,LED4,0);
return 0;
}
编译出现如图错误,如何修改呢?