OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5241|回复: 5

dma中断进不去?

[复制链接]

36

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2016-4-20
在线时间
169 小时
发表于 2016-5-19 17:25:16 | 显示全部楼层 |阅读模式
5金钱
      遇到一个问题,我开了两条iis总线,目的是接收两路iis音频信号。现在总线时钟已经发出来了。我用逻辑分析仪看了没有问题。数据总线上也有数据。但是只有一个iis总线接收到数据。我不太明白。目前我猜会不会是我的中断优先级设置的不对。
      第一条iis的中断优先级别设置为
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0x00;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;

      第二条iis的中断优先级别设置为
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0x00;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;

最佳答案

查看完整内容[请看2#楼]

I2S3ext_RX_DMA_Init函数中 DMA_DoubleBufferModeConfig(DMA1_Stream0,(u32)buf1,DMA_Memory_0);//双缓冲模式配置 DMA_DoubleBufferModeCmd(DMA1_Stream0,ENABLE);//双缓冲模式开启 DMA_ITConfig(DMA1_Stream3,DMA_IT_TC,ENABLE);//开启传输完成中断 初始化的时候这个通道配置错了,太粗心了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2016-4-20
在线时间
169 小时
 楼主| 发表于 2016-5-19 17:25:17 | 显示全部楼层
I2S3ext_RX_DMA_Init函数中
DMA_DoubleBufferModeConfig(DMA1_Stream0,(u32)buf1,DMA_Memory_0);//双缓冲模式配置
DMA_DoubleBufferModeCmd(DMA1_Stream0,ENABLE);//双缓冲模式开启
DMA_ITConfig(DMA1_Stream3,DMA_IT_TC,ENABLE);//开启传输完成中断
初始化的时候这个通道配置错了,太粗心了。
回复

使用道具 举报

36

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2016-4-20
在线时间
169 小时
 楼主| 发表于 2016-5-19 19:27:29 | 显示全部楼层
      中断的优先级别不能完全一样,但是还是只能进一个iis中断。这里还有什么需要注意的。
      第一条iis的中断优先级别设置为
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0x00;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;

      第二条iis的中断优先级别设置为
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0x01;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
回复

使用道具 举报

36

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2016-4-20
在线时间
169 小时
 楼主| 发表于 2016-5-19 23:36:33 | 显示全部楼层
一个iis fifo的最大4096字节,两个通道的fifo是不是公用这个4096字节@正点原子
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-6-2
在线时间
17 小时
发表于 2020-6-30 19:09:51 | 显示全部楼层
楼主我想问问, 为什么要重新定义一个麦克风开始的程序呢 它主要作用是什么呢 将音频信号给到usb——in吗?不可以用wm8978使能麦克风吗?谢谢!

void Mic1_Start(void)
{
         DMA_ClearITPendingBit(AUDIO_DMA_RX_STREAM, AUDIO_DMA_RX_IT_MASK);
         DMA_Cmd(AUDIO_DMA_RX_STREAM, ENABLE);
         while(DMA_GetCmdStatus(AUDIO_DMA_RX_STREAM) != ENABLE);
         
         SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Rx, ENABLE);
         I2S_Cmd(SPI2, ENABLE);
}
回复

使用道具 举报

36

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2016-4-20
在线时间
169 小时
 楼主| 发表于 2020-7-22 15:45:43 | 显示全部楼层
duesd 发表于 2020-6-30 19:09
楼主我想问问, 为什么要重新定义一个麦克风开始的程序呢 它主要作用是什么呢 将音频信号给到usb——in吗? ...

传到usb的话,要改usb的driver啊,这个要花点时间去弄。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 23:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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