通过蓝牙连接写数据?

colinodowd

成员
已加入
2020年1月23日
留言内容
12
编程经验
1-3
我试图通过PC上的蓝牙端口将数据从C#GUI发送到Teensy 3.2,但是没有运气。数据传输的方向相反(将数据从Arduino发送到C#GUI)。我正在使用Putty上的Bluetooth端口尝试查看"test string"但没有结果。但是,我得到的常量字符串为-1s。

少女码:
C#:
#define HWSERIAL Serial1

void setup() {

  HWSERIAL.begin(9600);

}

void loop() {

  String command = HWSERIAL.read();
  HWSERIAL.print(command);
  HWSERIAL.println();

}

C#代码(我基本上只是在重复发送测试字符串):
C#:
private void button11_Click(object sender, EventArgs e)
        {
            portBTSend = new SerialPort("COM24", 9600, Parity.None, 8, StopBits.One);
            portBTSend.RtsEnable = true;
            portBTSend.DtrEnable = true;

            try
            {
                portBTSend.Open();
            }
            catch (Exception e1)
            {
                label8.Text = "Connection to BT Failed. Try Again";
            }


            while (true) {
                portBTSend.Write("TEST STRING");
                System.Threading.Thread.Sleep(1000);
            }

         }

从HC-05到Teensy的Rx的我的Tx,从HC-05到Teensy的Tx的Rx。我相信我所有的接线都是正确的,因为我正在通过蓝牙COM端口从所有Teensy传感器接收数据到C#GUI。但是,当我尝试将某些内容发送到Teensy并通过Serial1.Read()进行读取时,我得到-1s。

我相信我的PC到Teensy的传出连接上丢失了某些东西
.
BT下载
 

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,612
地点
弗吉尼亚州切萨皮克
编程经验
10+
上面的屏幕截图表明COM24是一个传入端口,但是您正在尝试写出它吗?
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
仅仅因为它的工作正确,并不意味着它是正确的。

如果端口用于读取,则从该端口读取,反之亦然。
 

colinodowd

成员
已加入
2020年1月23日
留言内容
12
编程经验
1-3
使用App Store上的Win 10 BT终端可以正常工作,并允许我将数据从PC发送到Teensy,因此我认为C#代码有问题。每次运行时,我的代码都会冻结在BTSend.Write行上。这就是我所拥有的:

青少年:
C#:
#define HWSERIAL Serial1


void setup() {

  HWSERIAL.begin(9600);

}

void loop() {

  int incomingByte = 0;
  incomingByte = HWSERIAL.read();
  Serial.println(incomingByte);        
  delay(1000);

}

C#:
C#:
SerialPort BTSend = new SerialPort("COM23", 9600, Parity.None, 8, StopBits.One);
BTSend.Open()
BTSend.Write("Hi");
BTSend.Close();
 

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,612
地点
弗吉尼亚州切萨皮克
编程经验
10+
如果其他应用程序正常运行,则需要进行时间检查设置。哪个COM端口?工作应用程序上的通讯端口设置是否真的设置为9600,N,8,1?
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
以及为什么更改:
C#:
new SerialPort("COM23", 9600, Parity.None, 8, StopBits.One);
从 :
C#:
new SerialPort("COM24", 9600, Parity.None, 8, StopBits.One);
 
最佳 底部