# 嵌入式多功能应用 **Repository Path**: poumo/poumo2 ## Basic Information - **Project Name**: 嵌入式多功能应用 - **Description**: 这是一个运行在嵌入式Linux平台上的图形应用程序,集成了电子钢琴、照片浏览和电子书阅读功能,使用C语言开发,基于framebuffer和触摸屏交互。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-13 - **Last Updated**: 2025-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 嵌入式多功能应用 (Piano-Photo-Book) 这是一个运行在嵌入式Linux平台上的图形应用程序,集成了电子钢琴、照片浏览和电子书阅读功能,使用C语言开发,基于framebuffer和触摸屏交互。 ### 主要功能 🎹 电子钢琴:12键触摸钢琴,点击琴键播放对应音符 📷 照片浏览:支持JPEG格式图片浏览和滑动切换 📖 电子书阅读:支持中文文本阅读,带翻页功能 🖥️ 图形界面:触摸屏交互,彩色界面 ### 编译与运行 依赖项 bash sudo apt-get install libjpeg-dev mpg123 编译命令 bash gcc -o piano_app main.c lcd.c key.c ts.c touch.c -ljpeg 运行程序 bash ./piano_app 文件结构 text . ├── key.c # 钢琴键定义和声音处理 ├── key.h # 钢琴相关头文件 ├── lcd.c # LCD显示和绘图功能 ├── lcd.h # LCD相关头文件 ├── main.c # 主程序入口和功能调度 ├── ts.c # 触摸屏处理 ├── ts.h # 触摸屏相关头文件 ├── touch.c # 触摸坐标获取(备用) └── touch.h # 触摸相关头文件 ### 技术说明 ### 1. 图形显示 直接操作framebuffer (/dev/ubuntu_lcd) 支持基本绘图:点、矩形、文字 支持图片格式:JPEG、BMP 中文字库使用HZK16点阵字库 ### 2. 触摸交互 通过/dev/ubuntu_event读取触摸事件 触摸坐标转换为屏幕坐标(800x480) 支持按钮区域检测 ### 3. 功能模块 电子钢琴 12个钢琴键布局定义 使用mpg123播放MP3音频 触摸反馈效果(按键高亮) 照片浏览 递归扫描目录查找JPG文件 支持触摸切换图片 使用libjpeg解码显示 电子书阅读 文本分页处理 支持中文显示 翻页功能(上一页/下一页) ### 4. 资源路径 程序中使用以下硬编码路径,需根据实际环境修改: c // 钢琴音频路径 "/mnt/hgfs/share/piano/mp3/d1.mp3" // 图标路径 "/mnt/hgfs/share/app/other/bmp/exit.bmp" // 电子书路径 "/mnt/hgfs/share/2/book/other/2.txt" ### 使用说明 主菜单提供三个功能入口: 照片浏览 电子书阅读 电子钢琴 退出按钮 各功能界面操作: 照片浏览:触摸任意位置切换下一张,点击右上角退出 电子书:底部左右箭头翻页,左上角退出 电子钢琴:点击琴键播放声音,右上角退出 ### 已知限制 资源路径硬编码,需要根据实际环境修改 电子书阅读仅支持GB2312编码文本 图片浏览仅支持JPEG格式 钢琴按键响应有100ms延迟 ### 扩展建议 添加配置文件管理资源路径 支持更多图片格式(PNG,GIF) 增加钢琴录音和回放功能 添加电子书书签功能