第2次制造MP3了,把第一次搞得源码搬出来,按上边的阐明接好线,成果发现,不能工作了,第一次确实调出来了啊,我还清楚地记住,尽管调处来了可是作用并不好啊,仍是卡卡的,可是这次居然连声响都没有,我溃散了,苦恼自己前次没有做好笔录。
这次用到的模块和上一次相同,也是STM32F103RBT6最小体系板,VS1003模块,SD卡模块,还有一个按键模块就这些。SD卡模块和stm32通讯选用的是SPI接口,这儿运用的是SPI1,vs1003和stm32通讯也是SPI,这儿运用是SPI2,sd卡模块的引脚加上电源和地也就6根,vs1003的引脚相对较多,电源地2根+SPI的4根+ XDCS和XCS+DREQ共9根。在这儿咱们运用了15根杜邦线将他们连接到一同 。
我在调试中有点着急,眉毛胡子一把抓,认为连接好硬件后,下载软件集会OK的,成果没有好的情况的下仍然处在这种泥潭下,毫无条理的找缺点,改改这,动动那,在没有搞懂情况的情况下。既浪费时间又会让人动火,仍杯水车薪。主张,把两者区分隔,先把vs1003线拔下来,直接调试sd卡模块,这样线少,不会发生杂乱的感觉。sd卡模块是选用的SPI1,对照原理图,将mosi,miso,sck,cs1对1的从头接好,在初始化处设置断点,调查返回值是否为零。进一步调试fat初始化是否成功,依照这样的思维,相同调试vs1003.我便是这样总算vs1003正弦测验成功。
可是,两者都能正常初始化没问题的情况下,仍旧有一个让人头疼的问题,便是播映卡带的问题,就像老家运用VCD播映电影时有卡带而且还有机关枪“突突”的声响,尽管能播映出来,但突突的断续却感觉不到成功的高兴。然后参阅他人的代码,翻阅手册,SPI——setspeed()改大改小,屁改动没有。那问题就出在SPI的问题上,或许是SPI1或许是SPI2,说不定两者在设置速率上都存在问题。查找材料发现DREQ也简单出问题,我改动DREQ的引脚界说,最终仍是改成悬空输入,在DREQ外加上拉电阻,仍是不可,拔掉DREQ这跟线居然播映没有改动,那必定跟SPI的速率有关了。置疑SPI初始化装备有问题,查看一下没问题,之前的很多比如都是用这个的。无法了,我就将MMC_SD.C的文件里一切的SPI1和设置速率跟SPI1有关的都查看一下,见过发现还真有SPI1和SPI2傻傻分不清楚的。有查看vs10xx.c文件里的SPI2的运用,成果也发现速率装备不对的问题。改完后,从头编译下载。问题居然处理了,vs1003的解码音质真不比买来的mp3音质差。
总结,调试多模块的设备,分隔调试,节省时间,vs1003能播映出音乐,但比较慢或许卡,那基本上出现在SPI的速率上,仔细查看吧
激动之余,写此共享!