您的位置 首页 > 数码极客

如何让ucgui支持24位色(24bpp)

下篇基于STM32单片机彩屏MP3正在制作中主要完成在彩屏上移植UCGUI界面,显示歌曲名,歌词,显示内存卡中图片,闹钟,TXT文件打开等功能。

最开心事的事没过于每个小小的梦想通过自己的努力都能慢慢实现……

用STC12LE5A60S2单片机驱动,DS1302时钟芯片,DS18B20温度传感器,VS1003音频解码芯片在5110显示屏上显示时间温度,闹钟,播放SD卡中MP3文件等功能。

做了4年的MP3维修一直想设计个属于自己的MP3播放器,但苦于自己所学的知识有限。一直只能把它放在心里,直到2年前一个偶然的机会接触到了单片机,一开始像所有的单片机初学者一样热情很高。买块51开发板对着网上的教程慢慢的一边学习C语言,一边学习硬件设计,就这样半来年过去了,对单片机也只是有个初步的了解。除了点流水灯别的啥都不会,网上资料很多,但大多数都是些点流水灯,驱动蜂鸣器,继电器等一些基础到不能再基础的例子,想做个大点的程序,网上的资料少的可怜,于是像大多人一样开始放弃单片机,选择了学习VB,C#等编程语言。但结果都不太理想,学了点基础知识,感觉都比想向中的难学。开始自我反思,我是个搞硬件维修的,我在纯软件编程上没有一点优势,想以后在IT行业混口饭吃必需的将以前学习的硬件知识用到软件上,于是又再次选择了单片机这条路上摸所。

在实际制中感慨挺深的,所遇到的困难也远比想像的多,在做这之前呢对这个了解并不多,根本就没去想过这东西能做好吗,能实现些什么功能之类的问题。只是想用这次制作来打发时间,就这么开始了,在网上找资料,这里抄上一点那里改一下电路 原理图完成了,打算先试着做3台很快在淘宝网上买了3套所需的电子元件,通过20多个小时PCB板画好了,在网上找了家板厂做了10块PCB板 ,板跟电子元件共用了160多块钱吧,大概4天左右PCB板做好了,开始焊接PCB板发现功放IC的元件封装跟PCB对不上只好飞线连上整个硬件到此基本上完成了。

开始写软件程序,在网上找了很多相关资料但呢都不怎么全,没办法自己对着芯片手册按照时序图对寄存器一个一个的设置,时钟芯片ds1302跟温度传感器18B20的驱动程序我之前写好的可以直接使用,音频解码vs1003在买芯片时有送参考例程稍微修改下便能听到测试音,SD卡驱动没现成的代码只好对着SD卡通讯协议一遍一遍的看,程序边写边调,在串口调试助手下察看读的内容大概3天左右SD卡驱动编写完成。到此就只差fat32文件系统没搞好了,一开始呢我是想移值FAT.FS这个现成的文件系统,在网上找了好多关与它移值的方法不知是我理解能力太差还是他们进的不够细反正就是不知道怎么移值,没办法只有自己写文件系统驱动了,找了份fat32系统详解,跟fat32文件系统原理看了好几遍 对文件系统有了个初步的了解开始在电脑上用winhex软件查看sd卡中存的数据,下步就是用C语言去实现把SD卡的数据读到单片机中,这是整个制作中最难实现的部分,写了好长一段时间但呢一点思路都没有。心烦了 工作也忙了这个制作也就把它放一边了, 刚开始呢工作不怎么忙时还调试下程序,后来干脆就把它忘了,想用单片机在fat32文件系统中找出MP3文件还真不是一般的难,不知道过了多久换了份新的工作环境,新的工作量并不是很大就是无聊的很,像关在笼子样,无聊时开始我的文件系统学习,就这样时间一天天的过去了,大约4个来月后吧,我终于能将SD卡中的根目录的指定文件名的MP3文件数据给送到VS1003解码芯片中,在这fat32数据上的读取中,我深深的体会到了指针,结构体,数组等在C语言中的重要性,听到音乐的那一刻真的好辛酸 ,不容易呀。第一步到此完成了,接着我又花了几个月的业余时间给它实现了SD卡中根目录和一层子目录音乐文件读出,长文件名实现,自动播放下一曲 ,音量加减,音调调节 ,暂停,播放,下一曲,上一曲 到此完成了音乐播放的基本功能,用了段时间后发现还有许多功能要实现的 ,后又用单片机内带的eeprom实现开机后继续上次播放的歌曲和音量大小, 用单片机内带的AD模块实现电池电量的测量,用5110做了个简单的显示屏,主要显示时间,播放到第几首歌曲 音量大小,和电池电量显示,以及 闹钟功能的实现,在设计硬件时没考虑到闹钟功能的实现,现在虽然能实现闹钟功能但功耗特别大一块2000毫安的电池基本不怎么用每天就用它做闹钟 放几分钟音乐不到半个月就要充次电,本想还给它加个字库IC和TFT彩屏再移值点简单的GUI实现图片跟TXT文档的打开功能,但51单片机的硬件资源明显不够用,要想完成普通MP3的全部功能只能在我以后学习的stm32中完成,在这漫天飘雪的莫斯科只有你是我唯一打发无聊时间的朋友……

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何让ucgui支持24位色(24bpp)”边界阅读