十八、优化按键驱动
摘要:之前写的按键驱动中发现一个不足之处,还有一个bug,先附上代码 key.c key_app.c 在调用read函数读取按键的值时应该有阻塞和非阻塞两种方式,用open("/dev/mykey", O_RDWR);方式打开默认是阻塞的方式,如果要用非阻塞的方式打开则可以用open("/dev/myke
阅读全文
DB9接口定义
摘要:注意上表是公头的引脚定义,公头与母头的引脚编号是轴对称的,因此将公头和母头连接时是相同序号的引脚相连接。 作为串口使用时要注意,公头的2号是RXD,因而母头的2号是TXD,公头的3号是TXD,因而母头的3号是RXD。
阅读全文
十七、完成调整时间的功能
摘要:先上代码,最后讲解。 draw.c draw.h font_size_48.c 注:编译时除了48号字体外还有16,24,32,64等字体,但是我使用的是48号字体 main.c Makefile figure.c figure.h 在使用时要先将用 insmod key.ko将第十二章编写好的按键
阅读全文
十六、在屏幕上显示时间
摘要:上一章中已经实现了在屏幕上显示字符,要在屏幕上显示时间只需要修改主函数即可,主函数修改如下: 附上显示效果图:
阅读全文
十五、在屏幕上显示字符
摘要:显示字符需要先实现绘点功能,然后用取模工具对需要显示的字符取模,我用的取模工具为PCtoLCD2002,设置如下图: 封装的函数最好比较容易使用,最好能选择字体,具体细节再此不详述,直接附上程序。 draw.c draw.h font_size_16.c font_size_24.c font_si
阅读全文
十四、使用framebuffer填充纯色
摘要:简单描述一下framebuffer的使用,它其实就相当于将屏幕上的像素映射到内存中,改变内存中的内容后屏幕自动就变颜色了。 首先要调用open("/dev/fb0", O_RDWR);打开帧缓冲设备文件,获得文件描述符,然后使用mmap将文件内容映射到内存中,具体映大小取决于屏幕大小,初始化程序如下
阅读全文
linux实时时钟相关函数
摘要:time 功能:获取1970年1月1日00:00:00到现在的秒数 原型:time_t time(time_t *t); 参数: t:获取到的秒数 返回:获取到的秒数 说明:在time.h中定义了time_t类型就是long类型。通过形参或返回值获取到的值是一样的。 localtime 功能:将19
阅读全文
六、流的定位
摘要:fseek 功能:设置游标的位置 原型:int fseek(FILE *stream, long offset, int whence); 参数: stream:流指针 offset:偏移量,>0则向后便宜,<0则向左偏移 whence: SEEK_SET:流的开头 SEEK_CUR:当前位置 SE
阅读全文
五、stdout,stdoin和stderr
摘要:stdout,stdin和stderr分别是标准输出流、标准输入流和标准错误流,当一个用户进程被创建的时候,系统会自动为该进程创建这三个数据流,默认情况下这三个流是在终端上表现出来的。可以使用fprintf函数将数据打印到流中,如调用函数fprintf(stdout, "hello world\n"
阅读全文
四、fgets与fputs
摘要:fgets 描述:从流中读取最多size个字符,遇到文件末尾或\n则停止读取,该函数会在读取到的字符最后加上\0。 原型:char *fgets(char *s, int size, FILE *stream); 参数: s:保存数据的地址 size:要获取的字符个数 stream:文件流指针 返回
阅读全文
三、fgetc与fputc
摘要:fgetc 功能:从流中读取一个字符 原型:int fgetc(FILE *stream); 参数: stream:要读取的流指针 返回:读取到的字符,如果读完则返回EOF,EOF是end of file的缩写,其值是-1。 注意:返回的数据类型是int型,但是可以用char型变量接收 fputc
阅读全文
二、fread与fwrite
摘要:fread 原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 参数: ptr:数据存放地址 size:一个对象的大小 nmemb:对象个数 stream:文件流指针 返回:成功读取的对象个数 说明:需要读取的字节
阅读全文
一、fopen与fclose
摘要:需要包含的头文件为stdio.h fopen 原型:FILE *fopen(const char *path, const char *mode); 返回:打开成功则返回文件流指针,失败则返回空 参数: path:要打开的文件 mode:打开模式,大概有6种组合,man手册是这样写的: 大概解释一下
阅读全文