完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想寻求一些帮助 我现在在调试 I2S的接受中断 以下是我的 I2S的基本配置
/* CODEC_I2S pins configuration: WS, SCK -----------------------------*/ GPIO_InitStructure.GPIO_Pin = CODEC_I2S_WS_PIN | CODEC_I2S_SCK_PIN ; 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_NOPULL; GPIO_Init(GPIOB, &GPIO_InitStructure); /* Connect pins to I2S peripheral */ GPIO_PinAFConfig(GPIOB, CODEC_I2S_WS_PINSRC, CODEC_I2S_GPIO_AF); GPIO_PinAFConfig(GPIOB, CODEC_I2S_SCK_PINSRC, CODEC_I2S_GPIO_AF); /* CODEC_I2S pins configuration: SDIN -----------------------------*/ GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3; 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_NOPULL; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOC, CODEC_I2S_SDOUT_PINSRC, CODEC_I2S_GPIO_AF); /* CODEC_I2S pins configuration: MCK pin */ GPIO_InitStructure.GPIO_Pin = CODEC_I2S_MCK_PIN; 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_UP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOC, CODEC_I2S_MCK_PINSRC, CODEC_I2S_GPIO_AF); SPI_I2S_DeInit(CODEC_I2S); I2S_StructInit(&I2S_InitStructure); I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_48k; //I2S_Standard_PCMShort I2S_InitStructure.I2S_Standard =I2S_Standard_Phillips; //I2S_Standard_Phillips I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b; I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low; //I2S_Mode_MasterRx; I2S_InitStructure.I2S_Mode = I2S_Mode_MasterRx; I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Enable; I2S_Init(CODEC_I2S, &I2S_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = SPI2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority =1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); I2S_Cmd(CODEC_I2S, ENABLE); SPI_I2S_ITConfig(SPI2,SPI2,SPI_I2S_IT_RXNE ,ENABLE); 就是这样配置的 但是 I2S一使能 就直接跳到 接收中断里去了 但是 我什么数据也没有 输入啊? |
|
相关推荐
6个回答
|
|
sorry 程序 I2S模式的部分贴错了 是I2S_Mode_MasterRx 主模式接受
|
|
|
|
我感觉没什么这样配置没有什么错误啊?到底是什么情况呢?
|
|
|
|
而且 一使能SPI2->SR 寄存器里的接受中断位 就为有数据了
|
|
|
|
进入中断以后,看一下寄存器到底是发生了什么中断。
|
|
|
|
进入中断后 寄存器发生的是接收中断
|
|
|
|
把配置顺序改一下。先配饰I2S,最后再开启中断。可能是开启I2S的时候,导致产生的空中断。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1881 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1741 浏览 3 评论
4314 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1895 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2390 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-16 19:51 , Processed in 0.551584 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号