#include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <fcntl.h> #include <unistd.h> #define DEVICE_FILENAME "/dev/platform_drv_caiyuxin" int main ( ) { int dev; int flag; char buf; int temp; dev = open(DEVICE_FILENAME,O_RDWR|O_NDELAY); if (dev >=0) { while(1) { printf("输入控制命令:低三位控制,1:亮 0:灭,如 0x07全亮,0x00全灭\n"); scanf("%d",&temp); buf=temp; flag=write (dev, &buf, 1); printf("flag:%d\n",flag); // sleep (1); } } else { printf("open failure!\n"); } close (dev); return 0; }
时间: 2024-04-02 09:31:33 浏览: 145
第四次上机题目及参考代码.docx
这段代码是一个用户程序,用于控制一个名为"/dev/platform_drv_caiyuxin"的设备。程序首先通过open函数打开设备文件,打开时使用了O_RDWR|O_NDELAY标志,表示以可读可写方式打开设备文件,并且不阻塞地打开。如果打开成功,程序进入一个while循环,不断从用户输入获取控制命令,并将命令通过write函数写入设备文件中。其中,控制命令是一个字节,低三位表示对发光二极管的控制,1表示亮,0表示灭。如果写入成功,write函数返回写入的字节数,程序打印出写入的字节数。程序在用户输入命令后会不断循环等待用户输入命令,直到用户输入Ctrl+C退出程序。最后,程序通过close函数关闭设备文件。
阅读全文