C# 蓝牙开发你必须知道

        无线,无网络环境上位机与下位机连接方式比较常见的就是蓝牙与串口,这里记录回顾一下这段时间蓝牙开发方面的记录。

        蓝牙分为BLE蓝牙与经典蓝牙,两者主频都是2.4GHz,传输距离,范围,吞吐量可以自己网上详细查找,这里不详细展出,

1.蓝牙传输必然得有传输协议,最常用的协议就是TLV协议。

        T——tag 标签

        L——length 长度

        V——value 值

         这里的TLV只是最基本的结构,有些情况还会存在TLV嵌套,一个良好的协议结构肯定不止这些,必然需要包头包尾,校验位,常见的校验为CRC校验,CRC又分CRC8,CRC16等等 。

2.蓝牙连接都是以蓝牙MAC地址为主的。

3.蓝牙3.0以下都是经典蓝牙,3.0以上都是BLE蓝牙

        经典蓝牙

        经典蓝牙现在已经有点退环境了,现在主流都是BLE蓝牙,更有甚则双模(同时支持BLE与经典) ,经典蓝牙连接时支持PIN配对,连接方输入的PIN码与被连方预置的PIN不一致将无法配对。

        C# 经典蓝牙开发使用InThehand库

        源码地址:GitHub - inthehand/32feet: Personal Area Networking for .NET

        API地址:Namespaces

        搜索蓝牙有异步与同步之分,同步不管什么环境没记错需要搜索8-10s才会返回所有的设备列表,异步交互就会更友好一些,搜索到一个返回一个。

        BLE蓝牙

        BLE蓝牙也可叫低功耗蓝牙,是目前主流的蓝牙连接模式,目前最新好像版本迭代到5.2了,其中每个不同版本都有不同的特点,比如说4.2主打省电,5.0主打物联网。BLE数据传输一定要有注意一个特点,那就是它的一次传输字节最大为——244字节,这是重点需要圈起来的那种,设计协议一定需要考虑。

        C#BLE蓝牙开发调用windows提供的nuget包Windows.Devices.Bluetooth,作为微软提供的类库,那必然是很强大的

        官网:Bluetooth Low Energy sample - Code Samples | Microsoft Learn

BLE蓝牙连接时还需要配置特征,根据特征查找服务,服务是具体传输实现的通道,不同的服务进行不同的操作,如只读,只写,可读可写,

1.BLE蓝牙连接不支持设置PIN码,想要实现类似这种校验的话可以考虑应答机制。

2.一次最多传输244字节!!!

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南柯思一梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值