学点嵌入式去打工
Day1 一些Linux系统的基本操作和环境配置
Day2 在屏幕上显示一个圆
- 打开屏幕获得屏幕端口号fd_lcd
- 进行xy循环,符合圆以内的write入颜色1,不符合的write入颜色2,write每次执行,光标都会跳到下一个位置
- 关闭文件
Day3 让屏幕上的圆动起来
- 打开屏幕获得屏幕端口号fd_lcd
- 申请一段内存存放颜色信息,获得内存地址ptr,且与fd_lcd建立连接
- while1无限循环,判断圆是否碰壁,碰壁触发改变移动方向
- 根据移动方向代号,设置移动方向具体实现代码
Day4 在屏幕上显示图片
- 打开屏幕获得屏幕端口号fd_lcd
- 申请一段内存存放颜色信息,获得内存地址ptr,且与fd_lcd建立连接
- 打开图片获得端口号bmp_fd
- 创一个数组bmp_buffer存图片颜色数据,使用lseek跳过bmp_fd的前54个字节,用read读颜色数据到bmp_buffer中.
- 创建4字节int类型的数组lcd_buffer存放屏幕显示颜色信息,屏幕像素是4个字节,顺序是ARGB,而BMP中读取的信息的顺序是BGR,因此需要将00向前移24位作为A,红色1个字节向前移16位作为R,绿色的1个字节向前移8位作为G,蓝色不变,将这几个数字相或即可等价于相加.
- 作xy循环,将lcd_buffer放到ptr中
- 若需要作偏移则将偏移后的坐标作为x,y坐标,且最多只读取图片大小次
1 | for(y=0; (y+offset_y<480 && y<bmp_height); y++) |
Day5 读取触摸屏的触摸坐标
打开触摸屏,获取触摸屏端口号touch_fd
使用input_event结构体作为屏幕触摸的事件容器
使用read将touch_fd与事件容器交换数据
循环,判断触摸的事件,每次触摸屏幕将会传送两次touch_struct回来,第一次是X轴信息,第二次是Y轴信息
要进行滑动识别,需要引入按下事件和抬起事件
1 | //touch_struct.value 为0时代表松开 |
Day6 成果展示
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.



