2017-09-05 79 views
1

我想通過一個HM-10模塊(BLE)從MacOS設備發送數據到Arduino,並遵循這個guide。對於我的佈線,我做了以下工作:將HM-10上的RX引腳連接到Arduino上的TX;將HM-10上的TX引腳連接到Arduino上的RX; HM-10上的VCC到Arduino上的3.3V;將HM-10上的GND連接到Arduino上的GND。如何修復HM-10 BLE模塊返回奇數字符?

我使用下面的代碼:

#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(0, 1); //RX|TX 

void setup(){ 
    Serial.begin(9600); 
    BTSerial.begin(9600); // default baud rate 
    Serial.println("AT commands: "); 
} 

void loop(){ 
    //Read from the HM-10 and print in Serial Moniter 
    if(BTSerial.available()) { 
     Serial.write(BTSerial.read()); 
    } 

    //Read from the Serial Moniter and print to the HM-10 
    if(Serial.available()) { 
     BTSerial.write(Serial.read()); 
    } 
} 

當我送AT+NAME?,我應該接受OK+NAME:HMSoft,但我不斷獲取的奇怪字符的字符串:AV⸮5⸮。另外,這些命令似乎沒有任何影響。

我做錯了什麼,我無法從我的電腦與HM-10進行交互?

+0

請注意,儘管該公司聲稱HM-10設備支持AT命令,它不(僅適用於一些隱約類似於AT命令)。該協議有幾個[嚴重缺陷](https://stackoverflow.com/a/35950215/23118),所以你可能想要尋找替代硬件。 – hlovdal

回答

1
SoftwareSerial BTSerial(0, 1); //RX|TX 

您正在使用軟件串行的硬件串行引腳。然後你使用兩者,這會破壞數據。

移動軟件序列銷不同的,如2和3

+0

在發佈我的問題之前,我已經嘗試過了。當我在串行監視器中鍵入任何內容時,什麼也不返回。有什麼我可以做的建議嗎? – Gerald