打印
[STM32F4]

stm32F407接vs1003b模块,正弦测试没问题,传mp3数据却发不出声音

[复制链接]
999|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2024-1-18 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
正弦测试没问题,可传MP3数据时就没声音了。我发现在传数据时,DREQ的引脚一直为高,感觉数据是传送过去了,可是没有处理播放,求大神指导!!
以下是我的初始化函数:



void vs1003_init()
{
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;         //DREQ引脚
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
               
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_0|GPIO_Pin_10;    //XCK、XDCK、Rst
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        
        //保证从机现在不工作
        PBout(12)=1;
        PBout(0)=1;
        

}

void spi2_init(void)
{
        /* 使能SPI2的硬件时钟 */
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
        
        /*使能GPIO对应的时钟 */
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
        
        
        /*配置SPI引脚*/  
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI1);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI1);
        GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI1);
        
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;
               
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
        GPIO_Init(GPIOB, &GPIO_InitStructure);


        
        
         /* SPI的硬件配置 */
        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;        
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                                               
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                                       
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;                                                               SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;                                                SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                                                      
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;        
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;                           SPI_Init(SPI2, &SPI_InitStructure);
        /*使能SPI2工作  */
        SPI_Cmd(SPI2, ENABLE);
}
复制代码

使用特权

评论回复
沙发
淡漠安然| | 2024-2-21 12:41 | 只看该作者
VS1003B模块对时钟信号的要求比较严格,确保时钟信号的频率和相位符合规格要求

使用特权

评论回复
板凳
远山寻你| | 2024-2-21 17:30 | 只看该作者
确保从STM32F407VS1003B的数据传输是正确的,包括数据格式、时序、数据长度等

使用特权

评论回复
地板
冰春彩落下| | 2024-2-21 20:00 | 只看该作者
要考虑文件参数啥的,MP3文件的格式是符合VS1003B的解码要求的,包括比特率、采样率等

使用特权

评论回复
5
一秒落纱| | 2024-2-21 23:30 | 只看该作者
确保VS1003B的音频输出引脚连接到正确的音频设备,并且音频设备工作正常

使用特权

评论回复
6
江河千里| | 2024-2-22 04:00 | 只看该作者
要保证VS1003B模块的电源供应稳定,电压和电流符合规格要求

使用特权

评论回复
7
光辉梦境| | 2024-2-22 09:30 | 只看该作者
检查软件配置是否正确,包括VS1003B的初始化、寄存器配置、解码控制等

使用特权

评论回复
8
暖了夏天蓝了海| | 2024-2-22 12:00 | 只看该作者
使用示波器或逻辑分析仪来监视数据传输和音频输出,以便找出问题所在

使用特权

评论回复
9
夜阑风雨| | 2024-2-22 14:30 | 只看该作者
这可能是左声道或者右声道的事儿?

使用特权

评论回复
10
三生万物| | 2024-2-22 18:30 | 只看该作者
没遇到过啊,一般可能是差分功放啥的,也有关系

使用特权

评论回复
11
别乱了阵脚| | 2024-2-22 21:30 | 只看该作者
是不是你的喇叭坏掉了啊?

使用特权

评论回复
12
两只袜子| | 2024-2-24 17:24 | 只看该作者
确保你传输的MP3数据格式是正确的,且VS1003B支持该格式。检查MP3文件的比特率、采样率等参数是否在VS1003B的支持范围内。

使用特权

评论回复
13
jcky001| | 2024-2-24 18:00 | 只看该作者
检查SPI通信或其他使用的通信协议是否正确配置,并确保数据速率和时序与VS1003B的要求相匹配。

使用特权

评论回复
14
cr315| | 2024-2-24 20:00 | 只看该作者
可能是VS1003B配置问题

使用特权

评论回复
15
laocuo1142| | 2024-2-24 21:31 | 只看该作者
中断或DMA问题

使用特权

评论回复
16
duo点| | 2024-2-24 22:23 | 只看该作者
检查VS1003B的电源和接地连接是否稳定可靠。不稳定的电源可能导致模块无法正常工作。

使用特权

评论回复
17
onlycook| | 2024-2-24 23:00 | 只看该作者
确保你使用的STM32F407固件和库是最新的,并与VS1003B模块兼容。有时候,旧版本的固件或库可能包含已知的错误或不支持某些功能。

使用特权

评论回复
18
内政奇才| | 2024-2-25 08:59 | 只看该作者
增加调试信息和日志记录,以便跟踪数据传输和播放过程中的问题。这有助于确定问题发生的具体位置。

使用特权

评论回复
19
豌豆爹| | 2024-2-25 10:00 | 只看该作者
检查STM32F407与VS1003B之间的所有硬件连接,看看有没有连接错误或松动的引脚。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

561

主题

2450

帖子

4

粉丝