STM32F4开发板的音乐播放器实验问题

2019-07-20 06:24发布

STM32F4开发指南V1.1-库函数版本中第四十八章 音乐播放器实验
书中P660页写到“SD卡读取到的24位WAV数据流,是低字节在前,高字节在后,比如,我们读到一个声道的数据(24位),存储在buf[3]里面,那么要通过SPI-DR发送这个24位数据,过程如下:SPI_DR=((u16)buf[2]<<8+buf[1];SPI_DR=((u16)buf[0]<<8;然而在P672页的wav_buffill填充函数中对于24位数据转换处理后的结果却是buf[0]=p[1],buf[1]=p[2],buf[3]=p[0]......
我的问题是:
(1)对于24位的WAV数据流,wav_buffill函数并没有将WAV数据流的高字节p[2]赋值给缓冲区的首地址buf[0],这是为什么?
(2)为何 是低字节在前,高字节在后的,什么原则导致的?
(3)加入SD卡读取到的是16位WAV数据流,是否也是低字节在前,高字节在后的?如果是,为何wav_buffill函数并没有对16位WAV数据流进行转换处理?
(4)该开发板的下一个实验(第四十九章 录音机实验)进行了WAV录音并保存为SD卡内的WAV数据流文件,然而该实验里并看不出WAV数据流是低字节在前,高字节在后的,那么问题(2)是什么原因导致的?
感谢原子哥及各位学友指导。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。