完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void spi_write(uint8 ch);void VS1003init();void wr_commad(unsigned char addr,unsigned char hdat,unsigned char ldat) ;void sintest(unsigned char x) ;void delayms(uint16 z);void delayus(uint16 z);
void main(){int i;VS1003init();XDCS=0;for(i=0;i<20000;i++){DREQ=1;while(!DREQ);spi_write(music);}while(1);}void spi_write(uint8 ch){uint8 i;for(i=0;i<8;i++){MOSI=0x80&ch; //高位先写ch<<=1;SCLK=0; //上升沿有效SCLK=1;}}void wr_commad(unsigned char addr,unsigned char hdat,unsigned char ldat) { DREQ=1; while(!DREQ); XCS=0; spi_write(0x02); spi_write(addr); spi_write(hdat); spi_write(ldat); XCS=1; }void VS1003init(){XRST=0;delayus(100);XDCS=XCS=XRST=1;wr_commad(0x00,0x80,0x04); //VS1003新模式 软件复位delayus(10);DREQ=1;while(!DREQ);wr_commad(0x03,0x98,0x00); //VS1003时钟:3倍频delayus(10);wr_commad(0x05,0xbb,0x81); //VS1003采样率:48Kps 立体声delayus(10);wr_commad(0x02,0x00,0x55); //设置重音delayus(10);wr_commad(0x0b,0x20,0x20); //设置音量delayus(10);spi_write(0x00); //写4个字节的无效数据以驱动spi_write(0x00);spi_write(0x00);spi_write(0x00);} void sintest(unsigned char x) //正弦测试(循环){ wr_commad(0x00,0x08,0x20); //VS1003测试模式 DREQ=1; while(!DREQ); XDCS=0;XCS=1; spi_write(0x53); spi_write(0xef); spi_write(0x6e); spi_write(x); //频率 spi_write(0); spi_write(0); spi_write(0); spi_write(0); delayus(5000); spi_write(0x45); spi_write(0x78); spi_write(0x69); spi_write(0x74); spi_write(0); spi_write(0); spi_write(0); spi_write(0); delayus(5000); XDCS=1; } void delayms(uint16 z){uint16 i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);} void delayus(uint16 z){while(z--);} 这段代码可以播放原先附有的music[](音乐数据),然后我把这段音乐数据改为别的歌(前面32个字节有在的),为什么就播不了了?帮帮忙哈,太感谢您了 |
|
相关推荐
4个回答
|
|
应该是你数据的格式 和原来的不一致吧。
|
|
|
|
程序要怎么改?能给我讲一下思路吗?谢谢哈。我看上面那个程序好像也是直接读取music里面的字节,前面32个字节和后面的数据读取方式都一样的,感觉有点奇怪
|
|
|
|
码率是VS1003自动识别的,你只要找到VS1003支持的音频格式,然后丢给他就是了。。。
|
|
|
|
我想请教你目前做成功的 那部分,把数据放在单片机里可以放,指教一下
|
|
|
|
只有小组成员才能发言,加入小组>>
3309 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9050 浏览 16 评论
4085 浏览 18 评论
1171浏览 3评论
602浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
594浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2331浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 11:40 , Processed in 1.831120 second(s), Total 56, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号