使用Linux实现串口蓝牙透传简单易行 (linux 串口 蓝牙透传)

随着科技的不断发展,蓝牙技术已经成为了目前更流行的一种短距离无线通信技术之一。蓝牙通常用于数据传输,而随着技术的发展,蓝牙已经不再限于移动设备之间的通信,而是在更广泛的应用领域得到了应用。尤其在智能车载设备,智能家居应用等领域,蓝牙技术得到了广泛的应用。

在使用蓝牙进行数据传输时,通常需要将蓝牙和串口配置为透传模式,以实现数据的无缝传输。下文将介绍如何使用Linux实现串口蓝牙透传,达到简单易行的效果。

Step 1:安装蓝牙模块

在Linux上使用蓝牙模块需要先安装蓝牙模块相关的软件包。以Ubuntu为例,使用以下命令进行安装:

“`

sudo apt-get install bluetooth bluez bluez-tools rfkill

“`

安装完成后,使用以下命令启动蓝牙服务并打开蓝牙适配器:

“`

sudo service bluetooth start

sudo hciconfig hci0 up

“`

Step 2:连接蓝牙模块

将蓝牙模块与电脑连接。如果是USB蓝牙,插入后可以通过`dmesg | grep tty`查看蓝牙设备名,例如`/dev/ttyUSB0`。如果是内置蓝牙,可直接跳过此步,开始进行下一步。

Step 3:配置串口

在Linux中,通常使用`stty`命令配置串口。一般情况下,需要设置串口波特率、校验位等参数。在本文中,我们以`/dev/ttyUSB0`串口为例进行配置。打开终端并输入以下命令:

“`

stty -F /dev/ttyUSB0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

“`

该命令将`/dev/ttyUSB0`的数据位数设置为8,波特率为115200。同时,关闭了`Ctrl-C`的一个信号(`ignbrk`)、将回车符和新行符映射为 Cr 字符和 newline 字符,忽略回显、停止在这一行不换行,并关闭了流控。

Step 4:开启透传

在完成串口配置后,我们需要借助蓝牙模块开启透传模式。以`/dev/ttyUSB0`和蓝牙设备`C0:98:E5:89:XX:XX`为例,使用以下命令进行连接:

“`

sudo rfcomm bind /dev/rfcomm0 C0:98:E5:89:XX:XX 1

“`

该命令将蓝牙设备`C0:98:E5:89:XX:XX`绑定到`/dev/rfcomm0`上,并将其通道设置为1。接下来,使用以下命令开启透传模式:

“`

sudo cat /dev/ttyUSB0 | sudo tee /dev/rfcomm0

“`

该命令将串口`/dev/ttyUSB0`与蓝牙设备`C0:98:E5:89:XX:XX`进行透传。从串口发送的所有数据都将在蓝牙设备上反映出来,反之,从蓝牙设备发送的所有数据也可以通过串口进行接收。

Step 5:测试透传

在完成以上步骤后,我们可以通过在`/dev/ttyUSB0`中发送一些数据,然后在蓝牙设备上观察数据是否正确的方式来测试透传模式是否正常工作。同样的,我们也可以在蓝牙设备上发送数据,在`/dev/ttyUSB0`中接收数据,以验证透传模式的正确性。

通过以上步骤,我们可以轻松地在Linux上使用串口蓝牙透传,实现数据的无缝传输。在实际的应用中,如果需要使用多个串口,我们只需要重复以上步骤,分别绑定和开启透传即可。使用Linux系统进行串口蓝牙透传,不仅简单方便,而且能够广泛适用于各种应用场景,是一种值得推广的技术方案。

相关问题拓展阅读:

  • 解决Linux无法连接蓝牙耳机Bose QuietComfort 35(QC35)的问题
  • 为Deepin Linux启用蓝牙支持
  • Linux系统如何利用命令打开蓝牙

解决Linux无法连接蓝牙耳机Bose QuietComfort 35(QC35)的问题

切换到Arch也有一段时间了,一直在用腊乎的QC35也又一次遇到了蓝牙配对的问题。以前都是用Blueman,或者直接连接有线,但是问迹局源题只是被隐藏了,这次还是好好把这个问题解决了一下。

Linux下连接蓝牙设备的方法可以参照姿态 Arch Wiki:Bluetooth ,我使用的蓝牙设备是USB CSR8510

蓝牙适配器

,按页面说明安装好软件包后,启动蓝牙服务,进入bluetoothctl,耳机打开配对模式,scan on查找到我的耳机的MAC,pair 04:52:C7:5B:CB:65,出现问题:

如果你在蓝牙设置界面进行配对尝试,不同桌面也有不同的错误提示,反正就是无法完成配对。如果使用Blueman等软件,有机会可以通过多次重试成功连接,但是问题还是间歇出现,并不能治本。

百度是找不到什么好解决方案的,直接Google,不一会就找到了有用的解决方法, Pairing Bose QC 35 over Bluetooth on Fedora ,问题上看基本就是我的问题,更高票的回答也很简单,QC35声称支持低功耗蓝牙(LE)但不支持低功耗模式下的配对,Bluez也还不支持明明配对一个LE设备,却要切换到BR模式来配对(大概是这个意思),除非你在

配置文件

里指定所有设备都应该工作在BR模式,所以打开配置文件/etc/bluetooth/main.conf(没有的话新建一个),找到下面的

将 # ControllerMode = dual改为ControllerMode = bredr,然后保存,对于新建的文档,直接输入下面的然后保存

然后重启bluetooth服务

现在你应该能在bluetooth里愉快地配对了—-才怪,你还需要删除以前的配对设置,否则会出现org.bluez.Error.AuthenticationRejected错误

再次尝试配对,信任,连接,如果连接时出现Failed to connect: org.bluez.Error.Failed错误,那是你没装pulseaudio-bluetooth包,无法支持A2DP协议,装一个再试就可以了。

成功连接后声音输出可能会默认走的是HSP/HFP,音质会极差,在音频设置里切换到A2DP就正常了。更多蓝牙音频设备的设置可以查看 Arch Wiki:Bluetooth headset

关于蓝牙协议可以查看百科,或者这里有简短的科普 蓝牙协议分析(1)_基本概念

关于这里bluetooth和QC35在配对时鸡同鸭讲的问题,给出解决问题的人也表示自己的蓝牙鼠标是LE,为了使用他后来把配置文件里的ControllerMode删掉了,但是耳机和鼠标都没受影响,他猜想可能配对后的设备是不受配置文件的影响的。

为Deepin Linux启用蓝牙支持

自从安装了Deepin Linux,并 采用自己编译的内核 后,笔者的ThinkPad X200笔记本体验可谓是上升了一个非常重要的层次。后来有一天,笔者想用蓝牙耳机听音乐,然而在使用过程中发现,这台笔记本虽然自带蓝牙,屏幕下的蓝牙指示灯一直点亮着,系统中却看不到与蓝牙有关的设置选项。

出现这样的问题,多半就是因为系模告统中对蓝牙的支持没有启用,主要包括系统组件和内核两个层面。下面把我的经验总结如下。

默认地,Deepin并没有在系统中装上蓝牙组件,须用户手动安装。在终端中运行:

其中, bluetooth 是Linux蓝牙的核心组件,而 blueman 则是基于GTK+的一个全功能蓝牙管理器。把它们一齐装上,即可为Deepin启用全面的蓝牙支持。

笔者本以为安装了蓝牙组件后,蓝牙功能就能正常使用(因为之前在解决WLAN问题时,WLAN驱动未配置的情况下

无线网卡

灯是不会亮的,然而蓝牙灯始终会常亮),但是当打开蓝牙管理器时,竟然报错,提示蓝牙服务未启动。这不得不让我想到,内核中的蓝牙支持是否没有启用。

果不其然。在内核源码目录下运行 make menuconfig ,打开内核配置界面,依次对内核进行以下配置。

内核中的蓝牙选项位于【Network Settings】 –> 【Bluetooth subsystem support】。先选中【Bluetooth subsystem support】,然后按”Y“,勾选它。

【Bluetooth subsystem support】中有子菜单,按回车进入隐春,如下所示:

其中有几个选项,控制特定类型蓝牙设备协议的支持,一般全部启用。它们包括:

最为重要的一步,就是将

蓝牙适配器

驱动编译入内核当中。

进入最下方子菜单【Bluetooth device drivers】,如下所示:

菜单中根据接口和特定型号设备,列出了相应的支旦携明持选项,有些选项在勾选后还会展开新的选项。典型的接口有USB、SDIO、UART,按需要勾选。

笔者X200笔记本的蓝牙适配器是Broadcom BCM2023B,走的是USB通道,因此先勾选【HCI USB driver】,随后会在该项下面出现三个新的选项,再进一步勾选【Broadcom protocol support】。不过,在得知适配器信息之前,笔者拿捏蓝牙适配器可能也走了UART通道,所以也将【HCI UART driver】勾上,再进一步勾选下面的【Intel AG6XX protocol support】。但实际使用时发现,X200的蓝牙适配器的确走的是USB而非UART。若不能确定自己的蓝牙适配器类型,可以一并选上,也不占用太多空间。

上述配置完成后,按左右方向键选择”Save“,保存内核配置,然后选”Exit“退出。使用下面的命令重新编译内核并安装:

重启后,蓝牙功能即被激活。

在内核中启用蓝牙支持,并在系统中安装蓝牙组件后,Deepin发生了翻天覆地的变化。Deepin下蓝牙的体验非常出色。

Blueman管理器默认开机启动,会在托盘区域出现一个蓝牙图标,在其中可以很方便地管理蓝牙设备。

在Blueman管理器中可以搜索到各种蓝牙设备,包括各种手机、电脑,以及笔者的蓝牙耳机。与蓝牙耳机配对后,Deepin即刻将声音通过蓝牙进行播放,无需再进行进一步的配置,尤其方便。此外,Blueman还有其他有趣的玩法,比如文件传输、浏览设备文件,其中对设备文件的浏览功能与当年的MTK功能机类似。

以X200为代表的ThinkPad早期机型有一项设计非常出彩,就是它屏幕下的灯条,系统运行状态一目了然。其中正包括了蓝牙指示灯,当有数据传输时(如正使用蓝牙音频),指示灯会闪烁,如此就能知道蓝牙设备是否正常工作。可谓匠心。

要想让使用Deepin的笔记本支持蓝牙,需要做两项工作——

由此,Deepin下设备的价值就能被进一步挖掘,体验自会更上一层楼。

Linux系统如何利用命令打开蓝牙

1.要先确州备橘定硬件上有支持蓝牙的设备:用以下命令

(1)lsu

(2)运行hciconfig命令看蓝牙设备

(3)册团运行hcitool dev命令可以看见蓝牙设备的

硬件地址

2.激活滚指蓝牙

service bluetooth stop

service bluetooth start

关于linux 串口 蓝牙透传的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/206894.html<

(0)
运维的头像运维
上一篇2025-04-08 07:14
下一篇 2025-04-08 07:15

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注