你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

[复制链接]
暗血妖城 提问时间:2014-8-27 16:00 /
 我想寻求一些帮助 我现在在调试 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 发布时间:2014-8-27 16:00

举报

6个回答
暗血妖城 回答时间:2014-8-27 16:01:47

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

sorry 程序 I2S模式的部分贴错了 是I2S_Mode_MasterRx 主模式接受
暗血妖城 回答时间:2014-8-27 16:06:01

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

我感觉没什么这样配置没有什么错误啊?到底是什么情况呢?
暗血妖城 回答时间:2014-8-27 16:09:06

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

而且 一使能SPI2->SR 寄存器里的接受中断位 就为有数据了
废鱼 回答时间:2014-8-27 17:30:51

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

进入中断以后,看一下寄存器到底是发生了什么中断。
暗血妖城 回答时间:2014-8-28 09:26:07

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

进入中断后 寄存器发生的是接收中断
废鱼 回答时间:2014-8-28 10:12:46

RE:I2S 的接收中断 有问题 已初始化就自己进去了 郁闷

把配置顺序改一下。先配饰I2S,最后再开启中断。可能是开启I2S的时候,导致产生的空中断。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版