日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言蓝牙接收6,终于搞定了通过两路蓝牙接收数据

發布時間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言蓝牙接收6,终于搞定了通过两路蓝牙接收数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一直想做無線傳感器,通過藍牙來接收數據,無奈因為arduino接收串口數據的一些問題,一直擱到現在。因為學校里給學生開了選修課,所以手邊有一些nano和mega可以使用,所以就做了用兩個nano加上兩個藍牙模塊來發射數據,用mega加兩個藍牙模塊來接收數據。因為mega可以同時使用4路串口,所以考慮用mega來作為主控機,用來接收來自傳感器的數據,每個傳感器加一個nano和藍牙來無線發射數據。

因為是測試,所以在nano中寫了一個簡單的發射信號的語句。以下四nano中的程序:

————————————————我是分界線——————————————————————

int i=1;

void setup() {

Serial.begin(9600);?? }

void loop(){

Serial.print(i);

Serial.print("$");

delay(50);

i++;

}

————————————————我是分界線——————————————————————

以下是mega中的程序:

——————————————————我是分界線————————————————————————

String comdata = "";

String shuju="";

String shuju2="";

int i;

void setup()

{

Serial.begin(9600);

Serial1.begin(9600);

Serial2.begin(9600);

}

void loop()

{

while (Serial1.available() > 0)

{

shuju += char(Serial1.read());

delay(2);

}

while (Serial2.available() > 0)

{

shuju2 +=char(Serial2.read());

delay(2);

}

if (shuju.length() > 0)

{

i=shuju.indexOf("$");

if(i!=-1){

comdata=shuju.substring(0,i);

Serial.print("#1=");

Serial.print(comdata);

Serial.println("$");

shuju=shuju.substring(i+1,shuju.length());

comdata = "";

i=0;

}

}

if (shuju2.length() > 0)

{

i=shuju2.indexOf("$");

if(i!=-1){

comdata=shuju2.substring(0,i);

Serial.print("#2=");

Serial.print(comdata);

Serial.println("$");

shuju2=shuju2.substring(i+1,shuju2.length());

comdata = "";

i=0;

}??? }?}

——————————————我是分界線————————————————————

上篇忘記介紹藍牙模塊的設置了,如果想要利用兩路藍牙來接收數據,那么這兩路藍牙必須設置不同的密碼,以下是藍牙模塊的設置方法,可以將藍牙模塊接到串口模塊上,然后里喲你串口軟件發指令給藍牙模塊,以下設置是針對DFrobot的藍牙模塊的,它上面有開關可以設置接收命令狀態。如果不是DFrobot的藍牙模塊,只要將KEY針腳接高電平就是可以接受命令狀態。將兩個藍牙模塊設置為主,然后設置不同的密碼。再將另外兩個設置為從,設置對應主藍牙的密碼。以下是具體的命令設置:

在發送欄中輸入AT(不分大小寫),然后點擊發送,可看見模塊返回OK,這表示AT指令通訊正常。當AT指令設置完畢后,將2號開關AT Mode撥到2端退出AT命令模式,重新上電后設置才生效。

1.AT指令集如下:

指令

響應

參數

AT

OK

2.模塊重啟指令:

指令

響應

參數

AT+RESET

OK

3.設置和查詢模塊連接模式:

當模塊無法被適配器、主機連接時,需配置該參數,配置為AT+CMODE=1。

指令

響應

參數

AT+CMODE=< Param >

OK

Param:

0 —— 指定藍牙地址連接模式 (指定藍牙地址由綁定指令設置)

1 —— 任意藍牙地址連接模式 (不受綁定指令設置地址的約束)

默認連接模式:0

AT+CMODE?

+CMODE: < Param > OK

4.設置和查詢模塊角色:

當模塊無法被適配器、主機搜索到時,需配置該參數,配置為從角色。

模塊角色說明:

Slave(從角色) ——被動連接,可以和任意藍牙適配器配對使用;

Master (主角色)——查詢周圍從設備,并主動發起連接,從而建立主、從藍牙設備間的透明數據傳輸通道。

Slave-Loop(回環角色) ———被動連接,接收遠程藍牙主設備數據并將數據原樣返回給遠程藍牙主設備;

5.設置和查詢配對碼:

6.設置和查詢串口參數:

舉例:設置串口波特率:115200,1位停止位,無校驗

AT+ UART=115200,0,0\r\n

OK

AT+ UART?

+UART:115200,0,0

OK

注:在應用中,選擇1位停止位,無校驗。

總結

以上是生活随笔為你收集整理的c语言蓝牙接收6,终于搞定了通过两路蓝牙接收数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。