为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【淘宝链接:思度科技CSR开发板】。
技术交流QQ群号:743434463
开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程)
——————————正文分割线———————————–
1. 引言
最近接到一个项目,需求是开发一个蓝牙音频网关,用来测试车机上的蓝牙模块的A2DP、HFP功能是否正常。
花了一个星期的时间完成了ADK4.0.0的source app的学习,又花了一星期的时间在CSR8670开发板上调通了原型。
2. 主要功能
BlueCar是一款入门级的蓝牙音频网关。他的主要功能如下:
- 支持music模式(A2DP音频播放)
- 支持voip模式(AGHFP语音双讲)
- 支持一键模式切换
- 支持串口通信
- 支持连接特定蓝牙地址的从设备
系统框图如下:
3. 项目难点
项目软件基于ADK4.0.0的source app,其实现了基于USB通信的语音双讲功能,也可以播放USB源的音频。
在此基础上,项目需要实现如下功能:
- 串口通信
- 本地AUX源A2DP播放
- 本地模拟输入输出的AGHFP双讲
- A2DP播放和AGHFP双讲一键切换
- 连接特定蓝牙地址的设备
3.1. 串口通信
详细步骤请参考我的另一篇博文CSR8670的UART功能的应用笔记。
有一个需要注意的地方,source.mak文件会在使能“wired input”工程配置后将transport口指定成none,这会导致程序运行后找不到uart sink。建议修改source.mak如下:
# Set transport make variable
ifneq (,$(findstring -DANALOGUE_INPUT_DEVICE,$(DEFS)))
#TRANSPORT=none ===> 屏蔽这句话
else
TRANSPORT=usb_vm
endif