lddongdong 2021-12-01 08:19 采纳率: 100%
浏览 40
已结题

这段嵌入式代码有错误,如何修改?

问题是: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; 
}

img


编译出现如图错误,如何修改呢?

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-12-01 08:38
    关注

    错误提示,是 2410lib.h 这个头文件没找到。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式