首页 > 编程知识 正文

zs040蓝牙模块使用方法,blue蓝牙耳机怎么配对

时间:2023-05-03 13:44:01 阅读:54032 作者:654

1摘要本文的主要目的是告诉你应该如何使用bluez开发。 因为bluez的文档太少,入门门槛太高,很多人措手不及。 我打算把自己学习bluez的过程做一个专题,分享bluez的学习方法,不绕远路。 我使用的平台是君正x2000,bluez库使用的是bluez5.54。 bluez库是用buildroot编译的。 通过BLUEZ我主要开发了BLE的串行服务端demo。 这个程序是我上传的

3359 download.csdn.net/download/huo hongpeng/16681815? spm=1001.2014.3001.5501

需要的东西可以自己下载。

开发bluez需要什么知识? bluez的开发与其他常见的c库有本质的不同。 以前需要移植c库并调用c库中的api的功能。 bluez完全不是这样。 bluez编译后确实也有lib蓝牙,但通常不会直接使用这个库进行开发。 也不像网络上的旧教程那样用套接字开发。 那个用什么? 需要在DBUS上开发。 所以如果你想开发bulez,DBUS编程很绕圈子,你必须学习。

现在我们使用的bluez一般被称为bluez5。 bluez5与以前的bluez版本有很大的不同。 具体来说,http://www.bluez.org/release-of-bluez-5-0 /中有一个相对简单的内容,简单来说,所有bluez5的API都不是直接使用c接口调用

3 DBUS怎么学? 关于DBUS的教程在网上有很多。 我建议你先澄清一些概念。 这里不谈DBUS相关的内容。 我也不知道,但我会告诉你学习方法。

3.1建议您首先搜索DBUS博客、中文教程等,以了解基本概念和术语。 请参考以下链接。 这是一篇值得参考的文章

3359 blog.csdn.net/flowing flying/article/details/5410820

3359 blog.csdn.net/flowing flying/article/details/541124

3359 blog.csdn.net/flowing flying/article/details/5412711

3359 blog.csdn.net/flowing flying/article/details/5418180

3.2 DBUS英语官方文档中文文档都是别人开发过程中的一些教程不是官方文档。 了解一些概念后,请务必学习官方文档。 虽然是英语,但是准确性非常高。

另一个是DBUS的调试软件《d-feet》。 非常直观,可以直接在ubuntu上安装sudo apt-get安装d-feet,然后在命令行上直接键入d-feet直接启动。

3.2.1简要教程《D-Bus Tutorial》https://dbus.free desktop.org/doc/dbus-tutorial.html

3.3.2 DBUS规范《D-Bus Specification》非常重要,就像DBUS的数据手册一样,需要完整学习,内容很少,建议通读。 特别是变量的类型、对象、接口和属性的概念。

3359 dbus.free desktop.org/doc/dbus-specification.html

3.3.3 gdbus和dbus-glib的区别网上很多文章都提到,c语言在调用dbus接口时使用了dbus-glib,其实这个库已经废除了,官方文件中dbus-glib

下一个链接是简单的说明。 很容易就能读出来,知道区别

3359 developer.gnome.org/gio/stable/ch35.html

3.3.4 gdbus接口的编程

gdbus实际上是gnome的库,是gio库的一部分。 gio的接口api文档为https://developer.gnome.org/gio/stable /

gdbus的api文档包括两部分:Low-level D-Bus SupportHigh-level D-Bus Support。。 一般来说,学习Low-level D-Bus Support就足以编写bluez程序。

3359 developer.gnome.org/gio/stable/gdb us-low level.html

3.3.5 gdbus变量gdbus变量主要由GVariant表示,GVariant主要在三个文档中学习:

gvarianttype-introductiontothegvarianttyp

e system

https://developer.gnome.org/glib/stable/glib-GVariantType.html

GVariant — strongly typed value datatype

https://developer.gnome.org/glib/stable/glib-GVariant.html

GVariant Format Strings — varargs conversion of GVariants

https://developer.gnome.org/glib/stable/gvariant-format-strings.html

4 bluez怎么学?

如果想跳过DBUS直接学BLUEZ是不可能,所以必须先对DBUS有充分的了解。然后在学习bluez。而学习bluez必须对蓝牙规范有一定的了解,所以不了解蓝牙规范的还需自己去脑补。

看到这里直到bluez有多难了吧?所以网上基本没有教程,或者有也都是非常老的教程,只会不了解bluez的人走更多的弯路。

4.1 bluez的文档在哪里? 4.1.1 api文档

bluez只有官方文档,没有其他文档,不要再去其他地方苦苦的找教程了,根本就没有。所有bluez的API文档都在,在源码的doc目录下。

对于我编写的串口服务端程序,主要参考的是adapter-api.txt、advertising-api.txt、gatt-api.txt、device-api.txt

4.1.1 参考示例代码

对于DBUS接口的bluez编程,示例代码在源码目录的test目录下,但是没有c语言的代码,都是python语言写的,python语言对DBUS支持比c语言要完善很多。那如果我们想用c语言编写,这些代码有用吗?

当然有用,主要用于参考逻辑,而不是语言。

或者大家直接参考我基于c语言写的demo,对于入门已经很有帮助了

https://download.csdn.net/download/huohongpeng/16681815?spm=1001.2014.3001.5501

5 其他参考文档

对于bluez架构的参考文档,可以参考下面两个链接

https://download.csdn.net/download/huohongpeng/16685576?spm=1001.2014.3001.5501

https://download.csdn.net/download/huohongpeng/16685584?spm=1001.2014.3001.5501

 

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。