色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Arduino實(shí)現(xiàn)低功耗藍(lán)牙(BLE)加密狗通信的USB CDC主機(jī)

使用Arduino實(shí)現(xiàn)低功耗藍(lán)牙(BLE)加密狗通信的USB CDC主機(jī)

2023-06-14 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

#1。介紹

該項(xiàng)目是一個(gè)簡(jiǎn)單的示例,展示了一種將帶有 USB Host Shield 的 Arduino 設(shè)置為能夠與 BleuIO 加密狗通信的 USB CDC 主機(jī)的快速方法。

當(dāng) BleuIO Dongle 連接到 USB 端口時(shí),BleuIO Dongle 將開始廣播。然后它將充當(dāng)終端,接受輸入并將數(shù)據(jù)發(fā)送到 Arduino 虛擬 Com 端口。

在本示例中,我們使用了帶有 SparkFun 的 USB Host Shield (DEV-09947) 的 Arduino Uno Rev. 3。

#2。你需要什么

  • Arduino Uno Rev. 3 ( https://store.arduino.cc/products/arduino-uno-rev3)

SparkFun 板的要求

  • 使用 SparkFun 板,您似乎必須在 Vin 或筒式千斤頂上提供外部電源來自 USB 電纜的 5V 不起作用。
  • 您還必須從引腳 D7 到 RESET 使用跳線。

#3。關(guān)于守則

你可以在這里獲得項(xiàng)目

該項(xiàng)目基于Host USB Shield Library 2.0中的“acm_terminal”示例

?

pYYBAGONTF-ASCt5AABfMIFYgRM800.png
?

函數(shù) Acm.RcvData() 最大可能的最大數(shù)據(jù)包大小為 64 字節(jié),因此為了容納我們將接收的數(shù)據(jù)量,我們使用三個(gè)緩沖區(qū)來接收來自 BleuIO 加密狗的數(shù)據(jù)。

如果緩沖區(qū)接收到任何數(shù)據(jù),我們將其打印到連接到虛擬 COM 端口的串行終端。

 void loop()
{
   Usb.Task();
   if( Acm.isReady()) {
      uint8_t rcode;
      uint8_t rcode2;
      uint8_t rcode3;
      /* reading the keyboard */
      if(Serial.available()) {
        uint8_t data= Serial.read();
        /* sending to the BleuIO Dongle */
        rcode = Acm.SndData(1, &data);
        if (rcode)
           ErrorMessage<uint8_t>(PSTR("SndData"), rcode);
      }//if(Serial.available()...
       if(start_flag == 0x00)
       {
           rcode = Acm.SndData(strlen((char *)START_CMDS), (uint8_t *)START_CMDS);
           if (rcode)
           {
               ErrorMessage<uint8_t>(PSTR("SndData"), rcode);
           }
         start_flag = 0x01;
       }
       /* reading the BleuIO Dongle */
       uint8_t  buf[64];
       uint16_t rcvd = 64;
       uint8_t  buf2[64];
       uint16_t rcvd2 = 64;
       uint8_t  buf3[64];
       uint16_t rcvd3 = 64;
       uint8_t  dongle_input[3*64];
       uint16_t input_indx = 0;
       memset(dongle_input, 0, sizeof(dongle_input));
       rcode = Acm.RcvData(&rcvd, buf);
       delay(1);
       rcode2 = Acm.RcvData(&rcvd2, buf2);
       delay(1);
       rcode3 = Acm.RcvData(&rcvd3, buf3);
        if (rcode && rcode != hrNAK)
        {
           ErrorMessage<uint8_t>(PSTR("Ret"), rcode);
        }
        if (rcode2 && rcode2 != hrNAK)
        {
            ErrorMessage<uint8_t>(PSTR("Ret"), rcode2);
        }
        if (rcode3 && rcode3 != hrNAK)
        {
            ErrorMessage<uint8_t>(PSTR("Ret"), rcode3);
        }
           if( rcvd ) { //more than zero bytes received
             for(uint16_t i=0; i < rcvd; i++ ) {
               Serial.print((char)buf[i]); //printing on the screen
               dongle_input[input_indx] = buf[i];
               input_indx++;
             }
           }
           if( rcvd2 ) { //more than zero bytes received
             for(uint16_t i=0; i < rcvd2; i++ ) {
               Serial.print((char)buf2[i]); //printing on the screen
               dongle_input[input_indx] = buf2[i];
               input_indx++;
             }
           }
           if( rcvd3 ) { //more than zero bytes received
             for(uint16_t i=0; i < rcvd3; i++ ) {
               Serial.print((char)buf3[i]); //printing on the screen
               dongle_input[input_indx] = buf3[i];
               input_indx++;
             }
           }
           dongle_input[input_indx] = 0x00;
           // Example on a way for the Arduino to react to BleuIO events
           if(strlen((char *)dongle_input) != 0)
           {
             if(strstr((char *)dongle_input, "handle_evt_gap_connected") != NULL)
             {
               Serial.print("<>");
             }
             else if(strstr((char *)dongle_input, "handle_evt_gap_disconnected") != NULL)
             {
               Serial.print("<>");
             }
           }
   }//if( Usb.getUsbTaskState() == USB_STATE_RUNNING..
}

我們還將來自加密狗的最新數(shù)據(jù)存儲(chǔ)到 dongle_input 緩沖區(qū)中,并通過一個(gè)簡(jiǎn)單的“解析器”運(yùn)行它,以展示如何對(duì)事件做出反應(yīng)并讓 Arduino 執(zhí)行某些操作的簡(jiǎn)單方法。

在這個(gè)例子中,我們明確地尋找 BLE 連接或斷開事件。找到后,我們只需將“<>”或“<>”打印到終端。

#4。如何設(shè)置項(xiàng)目

從 GitHub 下載項(xiàng)目

在這里獲取項(xiàng)目

https://github.com/smart-sensor-devices-ab/arduino_bleuio_example

克隆項(xiàng)目,或者將其下載為 zip 文件并將其解壓縮到您的 Arduino 文件夾中。

下載 USB Host Shield Library 2.0

從此處下載庫 ( https://felis.github.io/USB_Host_Shield_2.0/)并將文件夾放入 Arduino 文件夾內(nèi)的庫文件夾中。

(有關(guān)安裝庫的信息,請(qǐng)參閱:http://www.arduino.cc/en/Guide/Libraries)

或者通過 Arduino IDE 下載:

在 Arduino IDE 中選擇 Sketch>Include Library>Manage Library

poYBAGONTGOAdT0kAABS1DkUjWs559.png
?

?

搜索 USB Host Shield Library 2.0 并單擊“安裝”

pYYBAGONTGWAA38eAACWdU29Frc987.png
?

?

#5。運(yùn)行示例

在 Arduino IDE 中單擊上傳按鈕將項(xiàng)目上傳到您的 Arduino。

?

pYYBAGOlGt-AKkiZAAAKKzOgjAA566.png
?

使用 TeraTerm、Putty 或 CoolTerm 等串行終端仿真程序打開“Arduino Uno 虛擬 COM 端口”。

串口設(shè)置:波特率:115200 數(shù)據(jù)位:8 奇偶校驗(yàn):無 停止位:1 流量控制:無

或者在 Arduino IDE 中打開 Arduino Monitor 并在右下角選擇“回車”和“115200 波特”

?

pYYBAGOlGuKAaArYAAAQgBJweSc114.png
?

您應(yīng)該看到“開始”一詞,然后看到加密狗運(yùn)行兩個(gè)命令:設(shè)置響應(yīng)數(shù)據(jù)和啟動(dòng)廣告。您現(xiàn)在可以向加密狗鍵入命令。

?

poYBAGOlGuSASBXIAAA7aP9Tmig001.png
?

?

?

?

?

?

?

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
主站蜘蛛池模板: 最新国自产拍天天更新 | 久久高清内射无套 | 亚洲大爷操 | 精品久久久无码21P发布 | YELLOW免费观看2019| 久久一区精品 | 狠狠人妻久久久久久综合九色 | 色裕插插插影视 | 俄罗斯爱爱 | xxx日本黄色| 欧美激情一区二区三区视频 | 最近中文字幕MV免费高清视频8 | 日本19xxxx撤尿 | 99RE6这里只有精品国产AV | 国产AV无码熟妇人妻麻豆 | 单亲妈妈3韩国电影免费观看 | 精品国产自在天天线2019 | 蜜桃视频一区二区 | 99在线观看免费 | 国产人妻麻豆蜜桃色精 | 色愁愁久久久 | 日本边添边摸边做边爱边 | 好湿好滑好硬好爽好深视频 | 777久久人妻少妇嫩草AV | 久久精品国产男包 | 中文无码在线观 | 国产精品永久在线 | 高清一区二区亚洲欧美日韩 | FREECHINESE东北群交 | 中文字幕久久熟女人妻AV免费 | 国产99对白在线播放 | 三级黄色在线观看 | 99国产亚洲精品无码成人 | 三级黃60分钟 | 日韩视频在线观看 | 久久久午夜精品福利内容 | 黄得让人湿的片段 | 久久热在线视频精品 | 18禁止看的免费污网站 | 污污内射在线观看一区二区少妇 | 日韩精品无码久久一区二区三 |