C#:蓝牙串口读数据和写数据

原文:C#:蓝牙串口读数据和写数据

  首次使用C#编写与COM口有关的程序,期间遇到了很多问题,写下自己的经验总结,如有错漏,欢迎批评指正!

1、新建一个串口类(nbsp;SerialPort类)

1 //Create a serial port for bluetooth
2 SerialPort BluetoothConnection = new SerialPort();

2、串口端口号搜索:

string[] Ports = SerialPort.GetPortNames();or (int i = 0; i lt; Ports.Length; i++){nbsp;nbsp;nbsp; string name = Ports[i];nbsp;nbsp;nbsp; comboBox.Items.Add(name);//显示在消息框里面}

3、读数据、显示数据:

byte[] data = new byte[length];
            BluetoothConnection.Read(data,0,length);
            for (int i = 0; i lt; length; i++)
            {
                BlueToothReceivedData += string.Format("data[{0}] = {1}\r\n", i, data[i]);//"+="表示接收数据事件发生时,触发"+="后面的语句
            }

4、写数据:

byte[] head = new byte[8] { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };//随便写的一组数据,里面的数据无意义
BluetoothConnection.Write(head, 0, head.Length);

5、常用的端口设置和方法:

BluetoothConnection.Open();//打开蓝牙串口
BluetoothConnection.ReadTimeout=10000;//设置或获取数据超时之前的毫秒数
BluetoothConnection.DataReceived;//蓝牙串口接收了数据
BluetoothConnection.BaudRate;//设置串口的波特率
BluetoothConnection.BytesToRead;//蓝牙所收到的缓冲区里数据的数据长度
BluetoothConnection.ReadByte();//从串口输入缓冲区里读一个字节BluetoothConnection.Close();//关闭蓝牙串口

串口最基本的功能就是实现通信,简单来说就是读和写,就像大家熟知的那样,把大象装进冰箱只需要三步:打开蓝牙串口,操作和处理数据,关闭蓝牙串口。

建议在手机上下载一个蓝牙助手,可以清楚具体地看到数据收发的结果。

另外,如果要设置蓝牙模块的波特率、密码等,需要在电脑上下载串口软件。

原文地址:https://www.cnblogs.com/lonelyxmas/p/11216549.html

时间: 2024-11-10 13:31:39

C#:蓝牙串口读数据和写数据的相关文章

SAP连接电脑串口读数(电子称,磅等数据读取)

这是几年前做的了,一直都不想分享出来,后来想想为了能够给大家点想法,献出来了... 这是一个电脑读称的方法,一般用COMM口连接的电子设备都可参考. 网上搜索MSCOMM32.OCX 1.将上面的MSCOMM32.OCX保存到系统目录下C:\Windows\SysWOW64\MSCOMM32.OCX 然后注册:REGSVR32 C:\Windows\SysWOW64\MSCOMM32.OCX 2.修改注册表: REGEDIT 在HKEY_CLASSES_ROOT\Licenses下建一项: 42

用蓝牙串口模块,实现和笔记本电脑自带蓝牙的数据收发测试

最近在玩串口编程的时候觉得用有线的方式来连接在有些情况下还是相当麻烦的,总觉得不方便,正好之前我们这边有项目用蓝牙串口模块实现了数据通讯,可惜我没参与,不过原理很简单,就是用串口-->蓝牙模块--->蓝牙模块——>电脑/手机,感觉这种方式正好是我想要的,以后调试靠这个能方便很多,在一些无法连线的场合也能使用. 先买了两块蓝牙模块,用串口直接和电脑连接了,都不许做什么设置直接就可以通过串口发送数据了,之后把电脑的蓝牙和这个模块连接,连上之后可以看到出现COM11和COM13是蓝牙连接后虚拟

qt5.0串口写数据返回为-1的问题

开发环境是vs2012,qt5.2.0版本.通过串口通信与步进电机控制器进行交互.步进电机连接两个电机驱动器,步进电机控制器控制两个电机运动,正反转,回零,运行到一定位置,控制输入输出停等基本操作.为了调整镜头和相机的距离,从而调整相机的放大倍率.两个电机只能分时运动,两个命令直接需要加延时,全部停除外. 遇到两个问题,一个是串口开始写数据返回为-1的问题,另一个是由于YL1和YL2输入端功能不单一:导致回零停时或是控制停时,步进电机控制器没有返回数据(用串口调试助手不存在这个问题,我也不清楚原

Hbase写数据,存数据,读数据的详细过程

转自:http://www.aboutyun.com/thread-10886-1-1.html 附HBase 0.94之后Split策略: http://www.aboutyun.com/thread-11211-1-1.html 1.Client写入需要哪些过程?2.Hbase是如何读取数据的? Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多个Sto

Android 蓝牙串口服务客户端开发 尝试

如题,经过三四天的开发尝试已经初步成型,下面是简陋的界面图: 上图是做的蓝牙串口服务的收发界面,主要用于平时的调试之用,由于开发的初衷是为了实现蓝牙对单片机的控制,因此加入了<进入控制/>的按钮选项,下图是控制界(xian)面(tiao) 没办法,没有太多的美学细胞,拖了两个重写的seekbar就作为控制摇杆了... 初次写Android,初次触及Java,水平自然就是无言以对,哈哈,不过为了防止万一以后有需求的升级,博客还是要写的. 1.环境搭建 Android开发者官网上提供了两套集成开发

IOS BLE4.0蓝牙和外设连接和收发数据的流程

前言: 苹果在IOS 6系统之后开始支持BLE 4.0,iPhone4s,iPod 5,iPad 3等之后的机型开始内嵌BLE4.0硬件,因此在开发前请先确认你的开发环境符合上述要求,并且苹果在BLE4.0之后,对外部的连接设备已经不在需要MFI认证了,当然你的外设肯定得要有蓝牙4.0模块了 综述: 开发BLE4.0的App,你需要在你的项目里面导入框架: CoreBluetooth.framework 在需要使用到蓝牙的文件里面你需要导入头文件: #import <CoreBluetooth/

BluetoothChat用于蓝牙串口通信的修改方法

本人最近在研究嵌入式的串口通信,任务是要写一个手机端的遥控器用来遥控双轮平衡小车.界面只用了一个小时就写好了,重要的问题是如何与板子所带的SPP-CA蓝牙模块进行通信. SPP-CA模块自带代码,在这里我使用的全部都是SPP-CA的默认模式.其中波特率是9600.读者若要修改其匹配密码,波特率等请使用串口调试工具对SPP-CA使用AT命令进行修改.详情参考其技术手册. 首先介绍Android端,官方的SDK中给了一个BluetoothChat的版本,这个版本稍加修改就可以进行串口通信.由于源代码

IO流--字符流写数据

IO流是用来处理设备之间的数据传输的,诸如:文件的复制,上传下载文件 Java中的流可以从不同的角度进行分类: - 按照流的方向不同:分为输入流和输出流. - 按照处理数据单位的不同:分为字节流和字符流. - 按照功能不同:分为节点流和处理流 要区分字符流和字节流,我们可以从类名来区分 类名中包含Reader:字符流  输入流 类名中包含Writer:字符流  输出流 类名中包含Input:字节流  输入流 类名中包含Output:字节流  输出流 包含Stream:字节流 今天着重来看下字符流

串行通讯之.NET SerialPort异步写数据

目 录 第1章 说明    2 1 为什么需要异步写数据?    2 2 异步写数据的代码    2 3 源代码    4 第1章 说明 1 为什么需要异步写数据? 如下图所示,以波特率300打开一个串口. 图1 单击"同步发送"按钮,则数据未发送完之前写数据的函数不会返回.波特率300,每秒大概能发送25个字符,发送500个字符就需要20秒.这20秒之内,整个程序将处于假死状态. 单击"异步发送"按钮,就不会出现假死状态. 2 异步写数据的代码 异步写数据的代码如