CSR8670项目实战:BlueCar蓝牙音频网关

本文介绍了使用CSR8670开发蓝牙音频网关BlueCar的过程,涵盖串口通信、A2DP播放、AGHFP双讲功能实现,以及一键模式切换和连接特定设备的方法。通过修改VM、library、Kalimba DSP层代码完成项目挑战。
摘要由CSDN通过智能技术生成

为了让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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值