如何从Windows

时间:2015-11-13 03:35:57

标签: c# bluetooth

(第三次写这个,让我们看看谁先放弃。我希望我知道你住在哪里,给你寄一张优惠券,去一个可以蒸汽消暑的好地方。)< / p>

这是一个关于如何在Windows上开始蓝牙开发的问题。

问题:您有一个微控制器和一些传感器,并且您想要与计算机通信。我的方法是使用串口转蓝牙适配器。

一旦设置好;我可以从我的Windows机器连接到微控制器来发送数据;并收到它。现在我想编写一个在Windows上运行并创建连接的应用程序。

这可以用各种语言来完成,但我选择了C#。您可以通过蓝牙向微控制器编写能够读写的应用程序的解决方案是什么?

(这是一个问题吗?是的!问题没有答案!)

2 个答案:

答案 0 :(得分:0)

所以,这是到目前为止找到的解决方案。还有其他人肯定,但这是一个开始。

蓝牙使用Windows上的串行端口;这意味着当与计算机配对时,蓝牙设备将与Windows上的COM端口耦合。 到目前为止,我发现在我的情况下,COM5与蓝牙设备配合使用。

知道这一点,如果你想用C#编写一个与BT设备(当然还有微控制器)对话的应用程序,你需要在应用程序中实现串行协议​​。

例如,使用Visual Studio创建一个基于表单的新应用程序,然后您可以从工具部分导入串行组件并将其放在表单上。如果你想写一个非可视化的应用程序;你需要包括

System.IO.Ports

这将允许您查询Windows上的端口;特别是串行COM端口。

然后只需设置正确的发送和接收端口,然后打开连接即可。该对象使用一个非常简单的API,允许您在富文本字段中转储串行输出,并从常规文本字段读取命令以相同方式发送。

例如,如果您有一个名为serial1(System.IO.Ports.SerialPort)的串行对象,表单上的按钮,文本框和富文本框:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.Windows.Forms;

namespace serialexample    
{
    public partial class Form1 : Form
    {
    // variables area
    private string rxstring;

    public Form1()
    {
        InitializeComponent();
    }

    private void btn_send_Click(object sender, EventArgs e)
    {
        if (!serial1.IsOpen)
        {
            serial1.Open();
            rtb_receive.Text = "Port Opened";
            serial1.Write(txt_send.Text);
        }
        else
        {
            serial1.Write(txt_send.Text);
        }

    }
    private void serial1_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        rxstring = serial1.ReadExisting();
        this.Invoke(new EventHandler(displayText));
    }
    private void displayText(object o, EventArgs e)
    {
        rtb_receive.AppendText(rxstring);
    }

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        serial1.Close();
    }
}

这是我用作与蓝牙模块通信的起点。多亏了这个,我写的应用程序能够通过蓝牙发送和接收数据到删除微控制器。

因为这是我第一次尝试这个,所以我不知道其他方法吗?但我确信有更强大的方法可以实现相同的目标(在其他语言中)。

这是一个有用的视频,有助于找到解决方案:https://www.youtube.com/watch?v=NkyLErxr3ZA

答案 1 :(得分:0)

使用 Windows 窗体项目模板,只需从工具栏中拖出一个串行端口。您可以使用波特率和端口 ID 初始化端口,如 COM1、COM2 等。您必须知道串行设备从 PC 响应什么命令。不难处理。蓝牙涉及更多。有一个关于这个主题的不错的视频。 https://youtu.be/RVasdDtgLKY