教你如何编程蓝牙4.0模块
蓝牙4.0标准包含两个蓝牙标准,准确的说,是一个双模的标准,它包含传统蓝牙部分(classic bluetooth)和低功耗部分(Bluetooth low energ
第一步、如何编程蓝牙4.0模块 先认识蓝牙4.0模块 蓝牙4.0标准包含两个蓝牙标准,准确的说,是一个双模的标准,它包含传统蓝牙部分(classic bluetooth)和低功耗部分(Bluetooth low energy)。这2个部分适用于不同的应用场景,传统蓝牙是在之前1.0.1.2,2.0EDR,2.1EDR,3.0EDR等基础之上发展和完善起来的,低功耗蓝牙是nokia的wibree标准上发展起来的。 而BLE(低功耗蓝牙)技术是最近最热门的词汇之一,BLE可以让电子设备很方便地和智能设备(手机)互联。为进一步简化低功耗蓝牙(BLE)应用技术在各个行业产品中的移植和使用,中国TI无线领域战略合作伙伴信驰达科技特别推出了低功耗蓝牙模块,其中RF-BM-S01模块通过了蓝牙技术联盟BQB认证。特别地,在为苹果智能设备开发外设时,可以绕过MFI认证,就这个特点很值得看好此类模块的应用前景。对于安卓系统的智能设备,只要底层支持BLE,同样可以使用模块进行设计你的个性化外设。而且BLE技术相对WIFI,Bluetooth 2.0等无线技术,有着能耗低,连接迅速,通讯距离更远等优势。 RF-BM-S01蓝牙模块可以同时工作在桥接(透传)模式和直驱两种模式下。桥接模式下(串口),用户的可以通过串口将自己的电子设备和智能设备(需支持蓝牙4.0)之间建立双向通讯。而直驱模式下,用户可以直接使用模块扩展简单外围,就能快速设计出方案甚至产品,以最低成本最高效地推出特有的个性化移动设备新外设。借此模块,甚至可以进一步通过智能设备的上网功能,直接建立设备和服务器,云应用等更高级的的通讯网络,对其设备实现智能化控制和管理。 在桥接模式下(透传模式),模块通过串口和客户的MCU相连,其中包括TX,RX,EN,BRTS,BCTS五条信号线蓝牙应用程序,其中EN是总使能开关,当抬高后,模块将会进入彻底睡眠状态(《0.4uA),当EN置低后,模块会进入广播态,此时可以开启APP对模块进行搜索和连接,连接成功之后,MCU和手机便可以进行全双工通讯。另外两条BRTS和BCTS是用来唤醒对方的信号线,在要求低功耗的应用中,双方可以通过这两根线来唤醒对方,开始接收数据。 在直驱模式下,用户可以直接通过智能设备对模块进行指令控制。模块提供了丰富的接口,包括蓝牙广播指示,连接指示,6路双向可编程IO,四路可编程PWM,两路14bit ADC采集接口,用户可以通过服务中的通道对这些资源进行编程控制,十分方便。只设计简单的外围扩展电路,就能构成最小BLE控制系统,而直接省下MCU的成本开销。 除此之外,用户甚至可以同时使用两种工作模式,当用户的MCU不够强大时,可以通过模块的外扩接口来弥补MCU的不足,分担部分驱动工作。 此模块的强大不仅仅在于两种模式的应用,更是提供了诸多附加功能,其中包括丰富的AT指令,以及自定义或标准蓝牙服务,为应用提供了更可靠,更先进的智能控制。 教你如何编程蓝牙4.0模块----蓝牙编程 用源码的形式给大家介绍如何用C#调用蓝牙。下面的源码是基于destop的C#调用蓝牙的程序,也就是使用普通版本的.NET Framework来调用编程,一般是有蓝牙的笔记本电脑,或者使用外接蓝牙设备的电脑,如何使用外接蓝牙设备,请参考代码: using System; sing System.Collections.Generic; sing System.Windows.Forms; sing InTheHand.Net; sing InTheHand.Net.Bluetooth; sing InTheHand.Net.Sockets; amespace BlueTooth public partial class Form1 : Form { public Form1() { InitializeComponent(); } BluetoothClient Blueclient = new BluetoothClient(); Dictionary《string, BluetoothAddress》 deviceAddresses = new Dictionary《string, BluetoothAddress》(); private void btnFind_Click(object sender, EventArgs e) { this.lblMessage.Text = “”; this.lblMessage.Visible = true; BluetoothRadio BuleRadio = BluetoothRadio.PrimaryRadio; BuleRadio.Mode = RadioMode.Connectable; BluetoothDeviceInfo[] Devices = Blueclient.DiscoverDevices(); lsbDevices.Items.Clear(); deviceAddresses.Clear(); foreach (BluetoothDeviceInfo device in Devices) { lsbDevices.Items.Add(device.DeviceName); deviceAddresses[device.DeviceName] = device.DeviceAddress; } this.lblMessage.Text = “搜索设备完成,搜索到” + lsbDevices.Items.Count + “个蓝牙设备。”; } private void btnConnect_Click(object sender, EventArgs e) { try { BluetoothAddress DeviceAddress = deviceAddresses[lsbDevices.SelectedItem.ToString()]; Blueclient.SetPin(DeviceAddress, txtPwd.Text.Trim()); Blueclient.Connect(DeviceAddress, BluetoothService.Handsfree); MessageBox.Show(“配对成功。”); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } 上图是点击finddevices按钮后的结果。我们选择其中的一个设备,然后在Password的textbox中输入配对密码,点击Connect,如果成功会弹出对话框提示“配对成功”,如果失败会出现如下提示: Note:你只要想在Visual Studio中建立一个winform的默认程序,并把代码复制过去,然后引用InTheHand.Net.Personal.dll你的程序就可以直接运行了。不过我不建议你直接复制,最好是敲一边代码比较好。 上面的示例代码中还需要特殊注意的就是下面这三个命名空间: using InTheHand.Net; using InTheHand.Net.Bluetooth; using InTheHand.Net.Sockets; 他们是哪来的呢?在上面的程序中我引用了一个外部的DLL:InTheHand.Net.Personal.dll,上面那三个命名空间就是InTheHand.Net.Personal.dll中的。我使用的是桌面版的.NET Framework3.5,如果你想在移动设备,如手机或者手持机等移动设备而上使用,那么你只需要创建一个.NET Compact Framework 3.5的程序,把上面的源码直接复制过去,并且引用InTheHand.Net.Personal.dll的移动版本就ok了。 小编也是这文章的收益者,所以分享出来 希望对大家也有帮助。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |