终于实现USB Microphone录音功能

2019-07-20 02:21发布

本帖最后由 lvehe 于 2016-6-7 15:47 编辑

目前仅实现单一的USB Microphone录音功能,没有Speaker的功能。二者结合实现起来感觉比较困难,毕竟对USB学习还不太深入。
板子上使用的是一颗带IIS数字输出的MEMS麦克风,要移植到其他咪头和CODEC芯片(比如WM8978)组合的板子也是很容易的,因为都是IIS数字输出接口。
源码主要参考https://github.com/iliasam/STM32F4_USB_MICROPHONE
QQ截图20160525103932.png

QQ截图20160525122217.png

2016-5-31更新:
添加FeatureUnit,实现静音和音量调节功能。
已知问题:Win7和XP下的音量设置数据不一样,目前程序以Win7为依据。
QQ截图20160531135334.png
2016-6-7更新:
修改音量调节为0dB~20dB,步进值为4dB。使Win7和XP下的音量设置数据保持一致。
添加多频选择功能,可选4种常用频率。
QQ截图20160607152619.png
QQ截图20160607152640.png
至此,USB Microphone功能基本完备,此帖完结,不再更新。






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
xuande
1楼-- · 2019-07-20 03:23

不错。

想知道:
几声道?
采样率多少?
输出格式?


lvehe
2楼-- · 2019-07-20 07:26
 精彩回答 2  元偷偷看……
xuande
3楼-- · 2019-07-20 11:41

有个人对这感兴趣,
或许会有合作机会。

@czdspeed



正点原子
4楼-- · 2019-07-20 17:09
不错啊。。。。cool
czdspeed
5楼-- · 2019-07-20 19:38
 精彩回答 2  元偷偷看……
czdspeed
6楼-- · 2019-07-20 20:19
具体的修改细节我没有看的很仔细,因为我的项目接的不是codec芯片而是DSP。所以我这里有一个testbuf,里面是1KHz的正弦信号。

直接丢到这个buff里面就可以了吧
static uint8_t  usbd_audio_DataIn (void *pdev, uint8_t epnum)
{
  //if (epnum == AUDIO_IN_EP)
  {
        uint32_t i;
        int16_t *buff = (int16_t *)IsocInBuff;
        for (i = 0; i < AUDIO_IN_PACKET/2; i++)
        {
                buff = I2S_Buffer[i*4];
        }
        DCD_EP_Flush(pdev, AUDIO_IN_EP);//very important!!!
    DCD_EP_Tx(pdev, AUDIO_IN_EP, IsocInBuff, AUDIO_IN_PACKET);
  }
  return USBD_OK;
}

一周热门 更多>