赞
踩
本文使用开发板GEC6818,实现屏幕显示特定颜色并且进行自动切换的功能。
拿到开发板GEC6818时可能需要做(开发板不是新的)
rm *: 删除当前目录下的所有文件。df -h: 显示磁盘使用情况。-h选项使输出以易读的格式显示。–查看该开发板的磁盘还有多少,如果很少了则需要再删除一些没有用的(前人的)文件夹vi /etc/profile: 使用vi编辑器打开/etc/profile文件。在这里,需要手动查找并注释掉特定的行。在vi编辑器中,注释行通常是使用#字符开头的行。
如果是别人使用过的开发板则看一看是否存在
#source /IOT/driver_ko/insmod_driver.sh
#cd/ IOT
#./iot &
#前面打 # 表示注释
mkdir -p /var/log: 创建一个名为log的文件夹。如果var文件夹不存在,则先创建var文件夹,然后再创建log文件夹。–这个文件夹用来存放自己的文件当然这个也可以不做,看个人习惯rx 名字: 这是一个命令行工具,用于从另一个设备(如计算机)接收文件。在接收文件之前,您需要在发送端启动xmodem传输,然后使用CRT或其他串口工具发送文件。回车就会有一个C在闪,CRT -> 传输 -> 发送xmodem
chmod +x lcd: 赋予lcd文件可执行权限。这意味着您可以在此文件上运行它,前提是它是一个可执行文件。在Linux系统上使用帧缓冲设备交替显示绿色和红色。每次颜色变化都会持续1秒,然后切换到另一种颜色,这样循环进行.
注意有函数:
延时 sleep(1)–>s级延迟
usleep(1)–>微秒级的延迟
当然可以。sleep 和 usleep 是两个用于在程序中引入延迟的函数。它们都用于暂停程序的执行,但它们的时间单位和实现方式有所不同。
sleep(1) - 秒级延迟:
unsigned int sleep(unsigned int seconds);seconds - 指定要暂停的秒数。sleep 函数返回时剩余的秒数。sleep 函数会导致调用进程暂停执行,直到指定的秒数已过去或被捕获到信号。这是一个较为粗糙的延迟,因为它只能精确到秒。usleep(1) - 微秒级延迟:
int usleep(useconds_t useconds);useconds - 指定要暂停的微秒数。usleep 函数没有返回值。usleep 函数会导致调用进程暂停执行,直到指定的微秒数已过去或被捕获到信号。这允许更细粒度的时间控制,因为它可以精确到微秒。注意:
usleep 在许多系统中仍然可用,但它在某些系统和版本中已被标记为弃用。建议使用 nanosleep 函数,该函数提供了更高的时间精度,并且在不同的系统中具有更好的兼容性。总之,这两个函数都提供了一种方式来暂停程序的执行,但它们的时间单位和精度有所不同。
使用open()函数打开/dev/fb0设备文件,标志为O_RDWR,表示读写模式。
然后通过write()函数对这个设备进行写入
最后记得close()这个设备。
其中所使用的函数可以参考博客write函数与lseek函数详细解析、OPEN,READ,CLOSE以及实例分析
#include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <sys/stat.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> int main() { int r1,r2; int fd =open("/dev/fb0",O_RDWR); if(-1 == fd) { perror("open file error"); close(fd); exit(1); } int color1[800*480]; int color2[800*480]; int i; for(i=0;i<800*480;i++) { color1[i]=0x00FF00; color2[i]=0xFF0000; } while(1) { r1 = write(fd,color1,800*480*4); if (r1!=800*480*4) { perror("write error"); return -2; } sleep(1);//延迟1s lseek(fd,0x00,SEEK_SET); printf("green\n"); r2 = write(fd,color2,800*480*4); if (r2!=800*480*4) { c return -2; } printf("red\n"); lseek(fd,0x00,SEEK_SET); sleep(1); } close(fd); }
上面代码中使用了perror()这个函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。