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

    1.搜索蓝牙有异步与同步之分,同步不管什么环境没记错需要搜索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

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

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

posted @   南柯思一梦  阅读(882)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示