iOS开发-蓝牙4.0Demo展示

iOS开发之蓝牙使用 本文介绍了蓝牙的简单使用 一.蓝牙概念 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙. 蓝牙4.0因为低耗电,所以也叫做低功耗蓝(BLE).它将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术. 二.BLE支持两种部署方式 双模式 低功耗蓝牙功能集成在现有的经典蓝牙控制器中,或在现有经典蓝牙技术芯片上增加低功耗堆栈,整体架构基本不变,因此成本增加有限. 阅读详情

//

//  LeDiscovery.h

//  JK_xuXuKou

//

//  Created by vita on 15/8/25.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import <CoreBluetooth/CoreBluetooth.h>

#import <UIKit/UIKit.h>

#import "FMDB.h"

 

@interface LeDiscovery :NSObject

 

typedef enum {

    temperatureWarning,

    peeWarning,

} warningStyle;

 

- (void)countData;

 

// 周边设备群

@property (nonatomic,strong) NSMutableArray *peripheralArray;

 

@property (nonatomic,strong) CBPeripheral *connectPeripheral;

 

// 发现的周边设备

@property (nonatomic,strong) CBPeripheral *discoveredPeripheral;

 

// 中央设备管理者

@property (nonatomic,strong) CBCentralManager *manager;

 

@property (nonatomic,strong) NSString *reciveString;

 

@property (nonatomic,strong) NSMutableArray *peripheralModelArray;

 

/**当前温度*/

@property (nonatomic,strong) NSNumber *temperature;

/**当前湿度*/

@property (nonatomic,strong) NSNumber *humidity;

/**当前电量*/

@property (nonatomic,strong) NSNumber *battery;

/**当前时间*/

@property (nonatomic,strong) NSNumber *time;

 

@property (nonatomic,strong) NSDate    *disConnectBluetoothTime;    //断开蓝牙的时间

@property (nonatomic,assign) NSInteger clickTimes;            //点击蓝牙连接的次数

 

@property (nonatomic,assign) BOOL isLine;                    //判断蓝牙是否连接(设备成功)

@property (nonatomic,assign) BOOL preChangePeripheral;       //判断是否手动更换连接设备

@property (nonatomic,assign) NSInteger count;                //通知的数量

 

+ (LeDiscovery *) sharedInstance;

 

/****************************************************************************/

/* Actions */

/****************************************************************************/

- (CBCentralManagerState) startScanningForUUIDString:(NSString *)uuidString;

 

- (void) stopScanning;

 

- (void) connectPeripheral:(CBPeripheral*)peripheral;

 

- (void) disconnectPeripheral:(CBPeripheral*)peripheral;

 

- (void) centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral;

 

@end

 

 

//

//  LeDiscovery.m

//  JK_xuXuKou

//

//  Created by vita on 15/8/25.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import <CoreBluetooth/CoreBluetooth.h>

#import "LeDiscovery.h"

#import "MBProgressHUD+MJ.h"

@interface LeDiscovery () <CBCentralManagerDelegate,CBPeripheralDelegate>

@end

 

@implementation LeDiscovery

 

 

#pragma mark --------------------------- 蓝牙设备 ---------------------------

 

+ (LeDiscovery*) sharedInstance

{

   static LeDiscovery *helper;

   static dispatch_once_t onceToken;

    

   dispatch_once(&onceToken, ^{

       if (helper == nil) {

            helper = [[LeDiscoveryalloc] init];

        }

    });

    

   return helper;;

}

 

- (LeDiscovery*) init

{

   self = [superinit];

   if (self) {

       /**

         B-1.创建中央设备

         */

        _manager =[[CBCentralManageralloc]initWithDelegate:selfqueue:nil];

        

       /**

         B-2.实例化周边设备群(数组)

         */

        _peripheralArray = [[NSMutableArrayalloc] init];

        

        [selfcreatSQLite];

    }

    

    return self;

}

#pragma mark --------------------------- 蓝牙操作 ---------------------------

 

/****************************************************************************/

/* 扫描设备 scan/disscan                                */

/****************************************************************************/

 

/**

 *  检查蓝牙状态

 */

- (void)centralManagerDidUpdateState:(CBCentralManager *)central

{

    

    if (central.state !=CBCentralManagerStatePoweredOn)

    {

        //        NSLog(@"请打开蓝牙!");

        _disConnectBluetoothTime = [NSDatedate];

       return;

    }

    

    if (_connectPeripheral) {

        [self.managerconnectPeripheral:_connectPeripheraloptions:[NSDictionarydictionaryWithObject:[NSNumbernumberWithBool:NO]forKey:CBConnectPeripheralOptionNotifyOnDisconnectionKey]];

       return;

    }

    

    //扫描指定设备

    [selfstartScanningForUUIDString:SERVICE_UUID];

}

 

/**

 *  检测到蓝牙开启,扫描设备

 */

- (CBCentralManagerState) startScanningForUUIDString:(NSString *)uuidString;

{

    [_manager scanForPeripheralsWithServices:@[[CBUUIDUUIDWithString:uuidString]]options:nil];

    

   CBCentralManagerState currentState = [_managerstate];

   return currentState;

}

 

/**

 *  停止扫描设备

 */

- (void)stopScanning

{

    [self.managerstopScan];

    //    NSLog(@"关闭扫描");

}

 

/****************************************************************************/

/* 发现设备      Discovery                             */

/****************************************************************************/

 

 

/**

 *  3.发现外设

 *

 *  @param central              中央设备

 *  @param peripheral           周边设备

 *  @param advertisementData    响应数据

 *  @param RSSI                 信号强度

 */

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI

{

    

   NSUserDefaults *perialUUIDString = [NSUserDefaultsstandardUserDefaults];

   NSString *str = [perialUUIDString objectForKey:@"UUIDString"];

    

    if ([strisEqualToString:peripheral.identifier.UUIDString]) {

        [self.managerconnectPeripheral:peripheral options:nil];

    }

    

    //保存搜索到的设备到 周边设备数组

    if ([_peripheralArraycontainsObject:peripheral]) {

        

       return;

    }else {

        [_peripheralArrayaddObject:peripheral];

 

    }

}

 

/****************************************************************************/

/* 连接设备      Connection/Disconnection                   */

/****************************************************************************/

- (void)connectPeripheral:(CBPeripheral*)peripheral

{

    if (_connectPeripheral) {

        [self.managercancelPeripheralConnection:_connectPeripheral];

    }

    

    [self.managerconnectPeripheral:peripheral options:[NSDictionarydictionaryWithObject:[NSNumbernumberWithBool:NO]forKey:CBConnectPeripheralOptionNotifyOnDisconnectionKey]];

}

 

- (void)disconnectPeripheral:(CBPeripheral*)peripheral

{

    [self.managercancelPeripheralConnection:peripheral];

}

 

#pragma mark --------------------------- 连接设备后的操作 ---------------------------

 

/**

 *  5.连接外设成功调用

 */

- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral

{

    // 停止扫描

    _disConnectBluetoothTime =nil;

    

    [_manager stopScan];

    

   _connectPeripheral = peripheral;

    

    // 设置代理

    _connectPeripheral.delegate =self;

    

    // 扫描服务

    [_connectPeripheraldiscoverServices:@[[CBUUIDUUIDWithString:SERVICE_UUID]]];

    

    //    NSLog(@"连接成功");

   self.isLine =YES;

    

 

   NSUserDefaults *perialUUIDString = [NSUserDefaultsstandardUserDefaults];

    [perialUUIDStringsetObject:peripheral.identifier.UUIDStringforKey:@"UUIDString"];

    [perialUUIDStringsynchronize];

    

}

 

/**

 *  5-1.当已经与peripheral建立的连接断开时调用

 */

- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error

{

    //    NSLog(@"重连中!!!");

    

   self.isLine =NO;

    _preChangePeripheral =NO;

 

    NSLog(@"断线重连接!!!");

    

    [self.managerconnectPeripheral:_connectPeripheraloptions:[NSDictionarydictionaryWithObject:[NSNumbernumberWithBool:NO]forKey:CBConnectPeripheralOptionNotifyOnDisconnectionKey]];

}

 

/**

 *  5-2.当central管理者与peripheral建立连接失败时调用

 */

- (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error

{

    //    NSLog(@"连接失败,正在重试");

    //    _disConnectBluetoothTime = [NSDate date];

    //    [self countDisConnectTime];

    

   self.isLine =NO;

    

    [selfstartScanningForUUIDString:SERVICE_UUID];

    

    

}

 

/****************************************************************************/

/*     发现设备的服务和特征 Discover   Services、Characteristics               */

/****************************************************************************/

 

/**

 *  6.发现服务

 */

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error

{

   for (CBService *servicein peripheral.services)

    {

        //        NSLog(@"服务 UUID: %@", service.UUID);

        

        [_connectPeripheraldiscoverCharacteristics:nilforService:service];

    }

}

 

 

/**

 *  7.发现特征

 *

 *  @param peripheral 周边设备

 *  @param service    发现的服务

 *  @param error      错误信息

 */

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error

{

    //  服务UUID匹配

   if ([service.UUIDisEqual:[CBUUIDUUIDWithString:SERVICE_UUID]]) {

       for (CBCharacteristic *characteristicin service.characteristics)

        {

           //  特征UUID匹配

            //                NSLog(@"特征 UUID: %@", characteristic.UUID);

            

            //  开启监听  开启了才能执行下面的接受数据

            

           if ([characteristic.UUIDisEqual:[CBUUIDUUIDWithString:CHARACTERISTIC02_UUID]]) {

               uint8_t value[] = {0x55,0x03};

                [_connectPeripheralwriteValue:[NSDatadataWithBytes:&value length:sizeof(value)]forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

            }

           if ([characteristic.UUIDisEqual:[CBUUIDUUIDWithString:CHARACTERISTIC01_UUID]]) {

                [_connectPeripheralsetNotifyValue:YESforCharacteristic:characteristic];

            }

        }

    }

}

 

 

 

/****************************************************************************/

/*                                 接收数据                                 */

/****************************************************************************/

 

- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

{

   if (error) {

//        NSLog(@"didWriteValueForCharacteristic error:%@",error.description);

    }

}

 

/**

 *  8.接收数据

 *

 *  @param peripheral     外部设备

 *  @param characteristic 外设特征

 *  @param error          错误信息

 */

- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

{

   if (error)

    {

        NSLog(@"didUpdateValueForCharacteristic error : %@", error.localizedDescription);

       return;

    }

    

//    NSLog(@"设备 :%@   %@",self.connectPeripheral.identifier.UUIDString,peripheral.identifier.UUIDString);

    

    

   if([characteristic.UUIDisEqual:[CBUUIDUUIDWithString:CHARACTERISTIC01_UUID]]){

       if (characteristic.value.length >7) {

            

            //将接收到的十六进制数据转成 十六进制字符串

           NSString *reciveString = [NSStringstringWithFormat:@"%@", [selfhexadecimalString:characteristic.value]];

            

           NSUserDefaults *productDefault = [NSUserDefaultsstandardUserDefaults];

           NSString *productNumber = [reciveString substringWithRange:NSMakeRange(7,17)];

            [productDefaultsetObject:productNumber forKey:@"productNumber"];

            [productDefaultsynchronize];

            

        }else{

            //将接收到的十六进制数据转成 十六进制字符串

           NSString *reciveString = [NSStringstringWithFormat:@"%@", [selfhexadecimalString:characteristic.value]];

           if (characteristic.value) {

               self.isLine =YES;

            }else {

               self.isLine =NO;

            }

            //    NSLog(@"%@",reciveString);

            //转成十进制数字并 打印

            [selftransformDataWithString:reciveString];

        }   

    }   

}

 

/**

 *  8-1.十六进制Data 转成 十六进制字符串

 */

- (NSString *)hexadecimalString :(NSData *)data

{

    /* Returns hexadecimal string of NSData. Empty string if data is empty.   */

    

   const unsignedchar *dataBuffer = (constunsigned char *)[databytes];

    

   if (!dataBuffer)

       return [NSStringstring];

    

   NSUInteger          dataLength  = [data length];

   NSMutableString     *hexString  = [NSMutableStringstringWithCapacity:(dataLength * 2)];

    

   for (int i =0; i < dataLength; ++i)

        [hexStringappendString:[NSStringstringWithFormat:@"%02lx", (unsignedlong)dataBuffer[i]]];

    

   return [NSStringstringWithString:hexString];

}

 

/**

 *  8-2.十六进制字符串转成数字

 *

 *  @param str 十六进制字符串

 */

- (void)transformDataWithString: (NSString*)str

{

    //记录当前时间

    

    _time = [NSNumbernumberWithLongLong:[selfcountCurrentDay]];

    

    //接收的数据长度为 14(温度、湿度)或者 8(电池电量),数据发送顺序为 14、14、8、14、14、8......

   if (str.length >8) {

        

       //当前温度数据

        _temperature = [NSNumbernumberWithInteger: strtoul([[strsubstringWithRange:NSMakeRange(4,4)] UTF8String],0,16)];

        

       //当前湿度数据

        _humidity = [NSNumbernumberWithInteger: strtoul([[strsubstringWithRange:NSMakeRange(8,4)] UTF8String],0,16) ];

        

        [selfinsertSQLite:_temperature :_humidity :_battery :_time];

        

    }else{

       //电池电量数据

        _battery = [NSNumbernumberWithInteger: strtoul([[strsubstringWithRange:NSMakeRange(4,2)] UTF8String],0,16)];

    }

}

 

#pragma mark --------------------------- 将NSDate 直接转成 yyyyMMddHHmmss ---------------------------

 

//计算当前日期

- (longlong) countCurrentDay

{

    NSDateFormatter *dateformatter=[[NSDateFormatteralloc] init];

    

    [dateformattersetDateFormat:@"yyyyMMddHHmmss"];

    

    NSString  *today = [NSStringstringWithFormat:@"%lld",[[dateformatterstringFromDate:[NSDatedate]] longLongValue]];

   long long now = [todaylongLongValue];

    

   return now;

}

 

 

//计算断开连接时间

- (NSInteger)countDisConnectTime

{

    if (!_disConnectBluetoothTime)

       return 0;

   else{

       NSCalendar *calendar = [NSCalendarcurrentCalendar];

        

       NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

        [dateFormattersetDateFormat:@"yyyy-MM-dd HH:mm:ss"];

        

       NSCalendarUnit   unitFlags = NSMinuteCalendarUnit;

        

        NSDateComponents *time = [calendarcomponents:unitFlags fromDate:_disConnectBluetoothTimetoDate:[NSDatedate] options:0];

        

        if(_connectPeripheral.state ==CBPeripheralStateDisconnected)

           return [time minute];

       else

           return 0;

    }

}

@end

iOS蓝牙4.0开发(二)iOS设备之间的通讯 上一节通过与外设之间文件传输讲解了中心角色(central),这一节通过iOS设备间的数据传输来详细讲解外设角色(peripheral) 实现细节 首先在我自己类的头文件中要包含CoreBluetooth的头文件,并继承协议CBPeripheralManagerDelegate 1.创建我们的外设角色 _peripheralManager = [[CBPeripheralManager 阅读详情

相关推荐

iOS蓝牙BLE4.0通信功能

iOS蓝牙BLE4.0通信功能,最近刚学的苹果,为了实现蓝牙门锁的项目,找了一天学习了下蓝牙的原理,亲手测试了一次蓝牙的通信功能,结果成功了,那么就把我学习的东西分享一下。

findhappy117的博客 977

iOS 蓝牙4.0开发使用(内附Demo)

一: 介绍 近几年,智能设备越来越火,这些智能设备中,有很大一部分是通过手机来控制硬件设备,来达到预期的效果,这中间少不了要使用到蓝牙功能,通过蓝牙来通信来控制设备。 蓝牙分为蓝牙2.0和蓝牙4.0。 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙。 蓝牙4.0因为低耗电,所以也叫做低功耗蓝(BLE),它将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术。 这篇文章用来介绍BLE 4.0的使用...

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 2470

iOS蓝牙4.0开发实战教程与Demo

蓝牙技术自上世纪90年代末以来,经历了从经典蓝牙到低功耗蓝牙BLE(Bluetooth Low Energy)的演变。BLE专为低功耗通信设计,广泛应用于智能手表、健康监测设备和其他物联网设备。它的出现使得无线连接变得更加便捷和高效,而无需担心电池寿命问题。在iOS平台上,Apple提供了Core Bluetooth框架来帮助开发者实现设备间的蓝牙通信。此框架通过提供一系列API,使得开发者能够轻松地发现BLE设备、连接设备、以及与之交换数据。

weixin_36288992的博客 1201

ios蓝牙使用demo

简单粗暴上代码 步骤解释请看另一篇 http://blog.csdn.net/swibyn/article/details/20531593 demo下载 http://download.csdn.net/detail/swibyn/9717588#import "TableViewController.h" #import "CoreBluetooth/CoreBluetooth.h"#pra

菜鸟的博客 3422

iOS蓝牙4.0低功耗数据通信开发实战

蓝牙4.0(Bluetooth Low Energy,BLE)是一种专为低功耗设备设计的无线通信技术,适用于智能穿戴、健康监测、智能家居和物联网等领域。相比经典蓝牙(Classic Bluetooth),BLE在保持短距离通信能力的同时,显著降低了能耗,使其成为电池供电设备的理想选择。BLE通信架构基于客户端-服务器模型:Central(中心设备):如iPhone,负责扫描并连接外设。Peripheral(外设):如智能手环,广播服务并提供数据。BLE通信的基本单位是。

weixin_42502040的博客 746

iOS 低功耗蓝牙连接设备Demo

低功耗蓝牙连接设备,亲测有效,不是为了积分不会上传.

iOS swift在写蓝牙中心和蓝牙外设demo时的发现和说明

两个demo在下面的博客中查看: iOS swift 蓝牙详解(蓝牙中心demo,蓝牙外设demo(可替代mac蓝牙串口调试工具),蓝牙中心框架,gif演示)https://xingxingyueliang.blog.csdn.net/article/details/113246128 文章目录 1.CBCentral CBPeripheral程序员不能自己创建,只能由系统创建,然后程序员在代理方法中获取 1.2 maximumUpdateValueLength(CBCentral)蓝牙中心最多一包能

feelinghappy的专栏 2034

ios 蓝牙使用demo

ios 蓝牙使用 demo

iOS蓝牙开发总结及Demo

1. 概念 BLE ,buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE; 中心设备 ,用于扫描周边蓝牙外设的设备,比如我们上面所说的中心者模式,此时我们的手机就是中心设备; 外设 ,被扫描的蓝牙设备,比如我们上面所说的用我们的手机连接小米手环,这时候小米手环就是外设; 广播 ,外部设备不停的散播的蓝牙信号,让中心设备可以扫描到,也是我们开发中接收数据的入口;...

aluoshiyi的博客 6393

iOS CB BLE(蓝牙4.0)极简Demo

自制极简BLE DEMO,所有连接写在一个类内,可用于收发数据,不过是我们公司的蓝牙模块才行~ 如果要用你的蓝牙模块收发数据,只需要把代码内的write和readCharacteristic的UUID设为你需要读写的UUID即可,也可以改成遍历读取所有数据,代码简洁易懂! 不懂就联系Q514763292

蓝牙demo代码

个人写的蓝牙demo,具体的就是我放在博客文章里面的,这里没处理线程阻塞的问题。

iOS蓝牙开发4.0总结学习Demo

--- .h文件 --- #import <Foundation/Foundation.h> //BLIE4.0 蓝牙库 #import <CoreBluetooth/CoreBluetooth.h> /** 蓝牙链接状态 @param state 状态 */ typedef void (^BLELinkBlock)(NSString *s...

qq_29680975的博客 630

google蓝牙4.0(ble 4.0)官方demo

谷歌的官方demo,开发蓝牙4.0必读demo

ios蓝牙4.0开发附demo

参考:http://www.cocoachina.com/ios/20170824/20369.html ①蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE peripheral,cent...

haoxuhong的博客 1228

笔记本摄像头模拟监控推送RTSP流

FFmpeg软件:选择Windows builds by BtbN一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。选择Windows版本EasyDarwin开源流媒体服务器 支持Windows、Linux、macOS平台;支持RTSP推流分发(推模式转发);支持RTSP拉流分发(拉模式转发);VLC Media Player软件:选择Windows64bit支持众多与及文件格式,并支持DVD影音光盘,VCD影音光盘及各类协议。

IT_LittleBaby的博客 3873

第58篇:AI技术实战:基于深度学习的智能音频内容审核系统

深度学习技术为智能音频内容审核系统提供了强大的支持,通过CNN、RNN和Transformer等模型,能够实现高效的音频内容检测和过滤。使用TensorFlow和Keras可以快速构建和训练音频审核模型,而预训练模型则可以进一步提升性能。数据预处理、特征提取和性能优化是提升智能音频审核系统性能的关键。希望本文的代码示例和注意事项能帮助你更好地理解和应用这些技术。接下来,我们将继续探索更多AI技术实战案例。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 705

iOS 蓝牙开发那些事

由于接到iphone需要和第三方蓝牙设备交互的任务,便开始了

xufeidll的专栏 3万+

【C语言】一文搞懂C语言文件操作

读写文件、文件相关库函数详解、文件缓冲区介绍

StackFrame 5656

iOS蓝牙开发 Bluetooth蓝牙CoreBluetooth 蓝牙中心设备的实现 蓝牙外设的实现 有Demo

最近公司在做一个iOS蓝牙项目,在开发的过程中简单整理了一些与之相关的基础知识,在这里分享一下。

iOS_开发 876

若依开源系统多数据源整合clickhouse数据库详细步骤

若依开源系统多数据源整合clickhouse数据库详细步骤

java之书-资源 897

建设银行核心系统建设历程全网最详细记录

中国建设银行核心系统数字化转型之路 摘要:中国建设银行自1954年成立以来,其核心系统经历了从分散到集中、再到分布式架构的演进历程。2002-2005年完成的数据大集中工程(DCC)实现了全行业务统一管理,2010年启动的"新一代核心系统"构建了企业级架构,率先实现"一次研发,全行共享"。2020年起全面推进主机下移战略,通过分布式架构改造,攻克八大关键技术难题,于2024年7月完成境内外全量核心业务下移,日均同步数据8亿条,实现金融核心系统完全自主可控。这一转型不仅

银行信息系统应用架构详解 4871

iOS 蓝牙4.0简单Demo

原文地址::iOS 蓝牙4.0简单Demo - 简书 相关文章 1、iOS学习笔记之蓝牙(有关蓝牙设备mac地址处理) 2(示例代码)----iOS学习笔记之蓝牙(有关蓝牙设备mac地址处理) 2(示例代码)_136.la 2、ios蓝牙开发(示例代码)----ios蓝牙开发(示例代码)_136.la 3、ios蓝牙开发(二)ios连接外设的代码实现----ios蓝牙开发(二)ios连接外设的代码实现 - 百度文库 ...

xqhrs232的专栏 505

基于综合阻抗特征的配电架空线路单相断线故障区段定位研究

本文提出了一种基于综合阻抗特征的配电架空线路单相断线故障区段定位方法。通过分析故障后正序、负序阻抗变化,构造综合阻抗判据实现精准定位。仿真结果表明:该方法能有效识别故障区段,差异度判据显著(故障区段达0.508,非故障区段<0.016);对过渡电阻(1-200Ω)和负荷变化具有强鲁棒性,定位准确率不受影响。相比传统方法,综合阻抗法放大了断线故障特征,解决了弱故障信号检测难题,为配电网安全运行提供了可靠的技术手段。

AI的内部世界的博客 78

蓝牙4.0 For IOS

转自:http://see.sl088.com/wiki/%E8%93%9D%E7%89%994.0_For_IOS 目录  [隐藏]  1 发现2 调试用APP3 困扰4 NRF80025 一些研究 5.1 官方Demo 6 CC2570官方源码7 经验8 IOS的蓝牙4.0支持9 IOS库支持10 官方文档说法11 其他研究12 见识

1万+

TC3XX - MCAL知识点(三十八):AURIX™ TC3xx 的EDSADC实现旋变解码功能(理论知识+手册阅读)

本文系统梳理了英飞凌AURIX系列芯片EDSADC模块的技术手册内容。首先概述了该模块的架构特点,包括模拟/数字输入通道和总线地址信息。重点解析了手册中的关键知识点:1)模拟量输入的差分/单端模式;2)数字量连接的触发、数据源和时钟源选择;3)功能配置中的寄存器操作注意事项;4)输入通道的三种数据来源模式;5)滤波器链的组成和工作原理;6)旋变应用中的载波信号生成和延迟补偿机制。最后对SRM、SAUL、SBLL等专业术语进行了详细解释。全文为理解EDSADC模块的硬件特性和配置方法提供了系统的技术参考。

梦想技术家 590

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: iOS开发-自定义Cell来完成设置界面&自定义基类控制器ZZSettingViewController
下一篇: 欢迎使用优快云-markdown编辑器
ZZ_iOSDeveloper
博客等级 码龄11年 21粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值