前面几天是基于ARM开发板实现一些功能,例如: 在屏幕上画画,把bmp格式图片输出到屏幕上,开发刮刮乐游戏,开发钢琴游戏,开发影像播放系统; 最后通过离线语音识别,让开发板执行对应的指令。 最后作业就是把上面的功能整合起来通过语音识别来实现。
基于带有屏幕(800×480)ARM单片机,利用C语言开发程序,在Ubuntu上编译。
然后通过SecureCRT利用tftp传输到单片机上。
picture:图片格式为bmp,是一种没有对图像做过处理的图像格式。
图像分辨率:
1.bmp:511×311
11.bmp:400×240
24bit.bmp:800×480
day1:实现文件的复制
day2:在屏幕尺寸为480×800的电子版上,实现9×9宫格的屏幕分割;
在改屏幕上画圆。
day3:把格式为bmp【24位】的图片输出在屏幕上,三种输出:
1、图片分辨率也是为800×480的。【也就是全屏覆盖】
2、图片分辨率小于800×480的,一种为宽是4字节的倍数,一种为宽不是4的倍数。
这里解析一下,在宽不是4的倍数的情况下,图片会进行字节对齐,所以每一行会有n个是为了对齐而填充的。所以这样
会在输出图片的时候会出现图片倾斜等问题。n=4-(宽×3%4)
为了解决这个问题,就需要在读取图片内容的时候过滤掉后面补充的,或者在输出的时候过滤掉。
3、图片分辨率小于800×480的,然后随意把图片输出在屏幕任何一个位置。【而不是按照屏幕输出默认顺序从左上角开始一行一行输出】
day4:在屏幕上实现刮刮乐效果;【使用到线程】所以在Linux下编译的时候在最后加 -pthread
day5:在屏幕上实现弹钢琴效果。【使用线程】主进程捕获X,Y坐标,线程去执行播放对应区间的mp3.值得注意的是,每次播放之前要把前面的mplayer进程杀掉。
day6:实现播放影像系统效果。有暂停,播放,下一首,上一首,快速,增加音量,减少音量功能。【用到线程加管道】
day7:x86文件时在虚拟机编译的。gec要在开发板执行。主要编写的是gec210中的voicectl.c文件来控制语音识别功能。通过开发板的语音识别,可以在
虚拟机上看到返回来的结果。
命令:
1、在Ubuntu中进去共享本地电脑文件夹:cd /mnt/hgfs/自己本机共享的文件夹
2、Ubuntu编译文件:arm-linux-gcc test.c -o test
3、tftp命令:tftp -g -r test 192.168.83.125 【填自己主机ip】
4、给文件赋予权限:chmod 777 test
5、执行文件:./test
6、在Linux下查看man手册命令:man 2 read 【read】为函数名
7、 灵活使用sprintf函数以及system函数。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。