找回密码
 立即注册
查看: 28|回复: 3

求助大佬,usb数据接收出错

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-06-11 20:14:41
已绑定手机

2

主题

4

回帖

34

积分

新手上路

积分
34
发表于 前天 20:53 | 显示全部楼层 |阅读模式
单片机型号stc32k12f54,usb接收音频流,通过dma送到iis里,目前能被主机识别,播放音乐就全是爆音,然后我尝试播放1khz音频进行测试,发现波形完全畸变,然后排查了很久,目前是怀疑数据接收出错了,我做了些实验:

1.使用固定数值生成1khz波形,dac波形是正常的,那大概率排查dma和iis配置错误和运行错误了
2.那是不是usb写入和dma读取相互干扰呢,我没有做任何情况缓冲的手段,所以在播放1khz音频时拔出usb,这样usb就没有新数据了,缓冲的内容就不会改变了,但是波形还是畸形的,那停止dma,拔出usb后用串口把数据发出来,弄成固定数值,结果也是一样畸形的
用网易云播放的时候发现这个1k波形会剧烈变动,固定的稳定的畸形波形是用这个网址测的:https://www.onlinemictest.com/zh/tone-generator/,不过win10本身播放器播放也是稳定的
然后我就弄不动了,感觉主机也不太可能发送错误的数据,那就是我读取的过程错了,但是我实在是看不出来了

IMG_20260611_200610.jpg

usb to i2s.zip

75.64 KB, 下载次数: 1

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-06-11 20:14:41
已绑定手机

2

主题

4

回帖

34

积分

新手上路

积分
34
发表于 前天 21:50 | 显示全部楼层
忘记说了,如果要下程序的话,调整irc频率到49.152mhz,数据接收在usb_out()这个子函数里,iis功能脚P_SW3=0x40,在I2S_ChuShiHua()这个子函数里
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:564
  • 最近打卡:2026-06-12 08:53:51
已绑定手机

108

主题

4515

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10183
发表于 昨天 09:18 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:371
  • 最近打卡:2026-06-12 11:09:59

85

主题

7496

回帖

1万

积分

超级版主

积分
16268
发表于 昨天 11:20 | 显示全部楼层
注意数据的大小端模式,单片机使用大端模式,电脑使用的是小端模式。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-6-13 10:55 , Processed in 0.075192 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表