
Linux应用
文章平均质量分 96
sakabu
记录我的嵌入式学习路线,梦想成为嵌入式大牛
展开
-
输入系统应用编程(二)—— 电阻屏和电容屏、tslib
无论是调用 ts_read 还是 ts_read_mt,都是通过 tsdev.list 中的模块来处理数据的。这些模块是递归调用的,比如linear模块的read函数如图:linear 模块的 read_raw 函数如图:因为是递归调用,所有最先使用 input 模块读取设备节点得到原始数据,再依次经过 pthres 模块、dejitter 模块、linear 模块处理后,才返回最终数据。原创 2024-11-08 21:15:14 · 898 阅读 · 1 评论 -
输入系统应用编程
先来了解什么是输入设备?常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。什么是输入系统?输入设备种类繁多,能否统一它们的接口?既在驱动层面统一,也在应用程序层面统一?可以的。Linux 系统为了统一管理这些输入设备,实现了一套能兼容所有输入设备的框架:输入系统。驱动开发人员基于这套框架开发出程序,应用开发人员就可以使用统一的 API 去使用设备。作为应用开发人员,可以只基于 API 使用输入子系统。原创 2024-11-08 18:59:11 · 1091 阅读 · 0 评论 -
使用freetype显示文字
Freetype 是开源的字体引擎库,它提供统一的接口来访问多种字体格式文件,从而实现矢量字体显示。我们只需要移植这个字体引擎调用对应的 API 接口提供字体文件,就可以让 freetype 库帮我们取出关键点、实现闭合曲线,填充颜色,达到显示矢量字体的目的。关键点 (glyph) 存在字体文件中 ,Windows使用的字体文件在目录下,扩展名为 TTF 的都是矢量字库,本次使用实验使用的是新宋字体simsun.ttc。给定一个字符,怎么在字体文件中找到它的关键点?原创 2024-09-19 18:29:11 · 1119 阅读 · 1 评论 -
ASCII字符和中文字符的显示
板子为韦东山老师的imx6ull板,要在LCD上实现字符的显示,要先实现我之前的博客Framebuffer应用编程里的描点函数,描点函数是屏幕显示的基础,实现了该函数才能进行本篇博客的操作,本文重点讲解字符的显示原理,实际场景中会调用函数就行了。要在 LCD 中显示一个 ASCII 字符,即英文字母这些字符,首先是要找到字符对应的点阵。在 Linux 内核源码中有这个文件:lib\fonts\font_8x16.c,里面以数组形式保存各个字符的点阵。编译时需要指定-fexec-charset=GB2312原创 2024-09-16 19:55:09 · 1267 阅读 · 0 评论 -
字符的编码方式(ASCII,ANSI,UNICODE)
对于同一个 TXT 文件中的内容,你在 Notepad 上选择不同字体时,字符显示的形状不一样。所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad 上显示时,这些字符对应什么形状由字符文件决定。字体和编码值是两个不一样的东西,比如 A 的编码值是 0x41,但是在屏幕上显示出来时可以使用不同的形状。什么叫编码?就是一个字符用什么数字来表示。比如字符 A我们使用0x41来表示它。使用 UTF8 编码时,即使 TXT 文件中丢失了某些数据,也只会影响到当前字符的显示,后面的字符不受影响。原创 2024-09-16 03:05:09 · 1203 阅读 · 0 评论 -
Framebuffer应用编程
在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。Frame 是帧的意思,buffer 是缓冲的意思,这意味着 Framebuffer 就是一块内存,里面保存着一帧图像。Framebuffer 中保存着一帧图像的每一个像素的颜色值。Framebuffer的大小为:屏幕分辨率x每一个像素所占的字节数。mmap 函数的功能是将文件或其他对象映射到进程的内存地址空间。这使得程序可以通过内存操作直接访问文件内容,而无需使用传统的文件读写函数。原创 2024-09-15 23:05:36 · 1053 阅读 · 0 评论 -
基于Linux文件编程实现处理Excel表格的数据(含源码及注释)
因为是一行一行的处理数据,有些小伙伴可能会疑惑,数据为什么不会被覆盖,为什么不会得到同样的数据?我们要知道read函数的原理,你读一个字符,文件的光标就会移动一个位置,你下次再打开这个文件,他的光标位置是不变的,除非你用lseek函数来改变光标的位置,所以我们每读一行,再加上结束符'\0'就相当于一个字符串,然后立马处理数据并且写入结果文件;下次再去读数据文件,是从上一次读的位置的下一个开始读,所以才能得到一行一行的数据。什么时候读完?原创 2024-09-11 21:04:17 · 1829 阅读 · 1 评论