1)资料下载:点击资料即可下载
2)对正点原子Linux感兴趣的同学可以加群讨论:935446741
3)关注正点原子公众号,获取最新资料更新
上一章我们向大家介绍了如何利用 STM32F4 的 USB 接口来做一个 USB 读卡器,本章我们
将利用 STM32F4 的 USB 来做一个声卡。本章分为如下几个部分:
57.1 USB 声卡简介
57.2 硬件设计
57.3 软件设计
57.4 下载验证
57.1 USB 声卡简介
ALIENTEK 探索者 STM32F4 开发板板载了一颗高性能 CODEC 芯片:WM8978,我们可
以利用 STM32F4 的 IIS,控制 WM8978 播放音乐,同样,如果结合 STM32F4 的 USB 功
能,就 可以实现一个 USB 声卡。
同上一章一样,我们直接移植官方的 USB AUDIO 例程,官方例程路径:8,STM32 参考
资料→STM32 USB 学习资料→STM32_USB-Host-Device_Lib_V2.1.0→Project→USB_De
vice_Examples→AUDIO,该例程采用 USB 同步传输来传输音频数据流并且支持某些控制命
令 (比如静音控制),例程仅支持 USB FS 模式(不支持 HS),同时例程不需要特殊的驱动支
持, 大多数操作系统直接就可以识别。
57.2 硬件设计
本节实验功能简介:开机的时候先显示一些提示信息,之后开始 USB 配置,在配置成功
之后就可以在电脑上发现多出一个 USB 声卡。我们用 DS1 来指示 USB 是否连接成功,并在
液晶上显示 USB 连接状况,如果成功连接,我们可以将耳机插入开发板的 PHONE 端口(或
者喇叭接 P1(SPK)端子也行),听到来自电脑的音频信号。同样我们还是用 DS0 来指示程
序正在运行。
所要用到的硬件资源如下:
1) 指示灯 DS0 、DS1
2) 串口
3) TFTLCD 模块
4) USB SLAVE 接口
5) WM8978
这几个部分,在之前的实例中都已经介绍过了,我们在此就不多说了。这里再次提醒大家,
P11 的连接,要通过跳线帽连接 PA11 和 D-以及 PA12 和 D+。
57.3 软件设计
本章,我们在第四十八章实验 (实验 43 )的基础上修改,先打开实验 43 的工程,在
HARDWARE 文件夹所在文件夹下新建一个 USB 的文件夹,同上一章一样,对照官方
AUDIO 例子,将相关文件拷贝到 USB 文件夹下。
然后,我们在工程里面去掉一些不必要的代码,并添加 USB 相关代码,最终得到如图 57.3.1
所示的工程:
可以看到,USB 部分代码,同上一章的在结构上是一模一样的,只是.c 文件稍微有些变化。
同样,我们移植需要修改的代码,就是 USB_APP 里面的这四个.c 文件了。
其中 usb_bsp.c 和 usbd_usr.c 的代码,和上一章基本一样,可以用上一章的代码直接替换即
可正常使用。
usb_desc.c 代码,同上一章不一样,上一章描述符是大容量存储设备,本章变成了 USB 声
卡了,所以直接用 ST 官方的就行。
最后 stm324xg_usb_audio_codec.c,这里面的代码,是重点要修改的,该文件是配合 USB
声卡的 CS43L22 底层驱动相关代码,官方 STM