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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RTT_Zephyr_Polling BlueNRG2 SPI使用說明

冬至子 ? 來源:paradox ? 作者:paradox ? 2023-09-21 14:54 ? 次閱讀

RT-Thread平臺下,利用 BlueNRG2 藍牙芯片運行 RTT_Zephyr_Polling 協議棧。使用 SPI 作為 HCI 傳輸方式。

這里開發和測試使用的都是 NUCLEO-L476RG 硬件平臺,其他 MCU 硬件理論上只需按實際情況在 RTT 中修改引腳等設置。

硬件連接:NUCLEO-L476RG
使用 NUCLEO-L476RG 開發板配套的擴展板連接 BlueNRG2,使用 SPI 作為 HCI 傳輸方式,運行 RTT_Zephyr_Polling 藍牙協議棧。

如下圖連接好硬件即可:

1.jpg

搭建 RT-Thread Studio 環境
參考快速開始 完成 RT-Thread studio 環境的搭建。

創建項目工程
創建 STM32L476 ST-NUCLEO 示例工程

3.jpg

打開 SPI1 BUS(默認使用SPI的bus1,可在Kconfig中修改),保存

1.jpg

這里RTT代碼因為版本問題(v5.0.1 202309),編譯會報錯。RT_WEAK 字段在新版已經被 rt_weak 替換。這里替換一下就可以正常編譯。

1.jpg

SPI引腳修改
當前在RTT的BSP中 NUCLEO-L476RG 的默認的SPI1_SCK為PA5。而在實際的硬件連接中時,SPI1 連接的SCK引腳為PB3。將其修改為PB3,保存,generate code。這里可能需要將CubeMX多余的生成文件手動刪除。

打開項目工程中的 cubemx_config.ioc,修改SPI1的引腳:

1.jpg

zephyr_polling 軟件包配置
在 RTT Studio 的軟件包中心添加zephyr_polling軟件包,配置項如下:

1.jpg

配置說明:
藍牙芯片選擇: bluenrg2
運行平臺選擇: 使用 SPI 作為 HCI 通信接口
HCI 傳輸設置:選擇使用 rt-thread SPI。這里使用的硬件平臺是 STM32L476 ST-NUCLEO,且使用配套擴展板連接,使用默認配置即可。
如果換用其他硬件環境,但仍然使用 bluenrg2 藍牙芯片,需要根據實際情況修改:SPI BUS(SPI總線)、SPI INDEX(SPI設備號)等。其中特別要注意,bluenrg2 的 SPI 通信除了MISO、MOSI、SCK三個基本信號線外,還需要一個由 MCU 控制的 CS_PIN 和一個由 bluenrg2 控制的 IRQ_PIN。這兩個引腳需要根據實際情況在這里設置。

這里先使用Beacon信標例程進行測試。保存設置,等待文件更新。

刷新 setting,可以看到項目資源目錄成功添加。

1.jpg

編譯項目代碼,下載

Beacon例程運行
上一步中已經配置使用 Beacon 例程。

協議棧啟動入口已導出為 cmd,輸入zephyr開啟一個線程運行Beacn例程。

static int zephyr(void) {
static rt_thread_t tid = RT_NULL;
rt_kprintf("zephyr_polling_init rn");
tid = rt_thread_create("zephyr_polling_main",
zephyr_polling_main, RT_NULL,
4096,
5, 5);
if (tid != RT_NULL)
{
rt_thread_startup(tid);
}
return 0;
}
// INIT_APP_EXPORT(zephyr_polling_init);
MSH_CMD_EXPORT(zephyr, "zephyr_polling start");
運行時串口打印如下:

initialize rti_board_start:0 done
initialize drv_pm_hw_init:0 done
initialize rt_hw_spi_init:0 done
| /

RT - Thread Operating System
/ | 5.0.1 build Sep 20 2023 21:08:57
2006 - 2022 Copyright by RT-Thread team
do components initialization.
initialize rti_board_end:0 done
initialize stm32l4_hw_lptim_init:0 done
initialize finsh_system_init:0 done
msh >zephyr
zephyr_polling_init
bt_init_hci_driver
SPI_init_process device_name: spi10, spi_name: spi1, rate: 1000000, databits: 8, LSB_MSB: 1, Master_Slave: 0, CPOL: 0, CPHA: 1
SPI_init_process cs_pin_num: 1, irq_pin_num: 0
hci_driver_open, SPI_config_finish
I: (bt_hci_core)hci_init():3230: work start.
msh >prepare_event_process, step: 1
prepare_event_process, step: 2
prepare_event_process, step: 3
prepare_event_process, step: 4
prepare_event_process, step: 5
I: (bt_hci_core)hci_init_end():3205: work end.
I: (bt_hci_core)bt_dev_show_info():3008: Identity: 02:80:e1:00:00:f5 (public)
I: (bt_hci_core)bt_dev_show_info():3042: HCI: version 5.2 (0x0b) revision 0x1222, manufacturer 0x0030
I: (bt_hci_core)bt_dev_show_info():3044: LMP: version 5.2 (0x0b) subver 0x0015
Bluetooth initialized
Beacon started, advertising as 02:80:e1:00:00:f5 (public)
其中

SPI_init_process device_name: spi10, spi_name: spi1, rate: >1000000, databits: 8, LSB_MSB: 1, Master_Slave: 0, CPOL: 0, CPHA: 1
SPI_init_process cs_pin_num: 1, irq_pin_num: 0
hci_driver_open, SPI_config_finish
是 HCI 使用的 SPI 配置參數

prepare_event_process, step: 1
prepare_event_process, step: 2
prepare_event_process, step: 3
prepare_event_process, step: 4
prepare_event_process, step: 5
是芯片廠商設計的 bluenrg2 芯片啟動流程(bluenrg2 不需要boot流程,但是有一系列的prepare流程)

手機端使用 nRF Connect 搜索藍牙信號,即可成功觀察到藍牙設備地址為0280e10000:f5的beacon設備。

1.jpg

心率例程運行
軟件包配置
軟件包配置如下,選擇 peripheralhr(外圍設備心率):

1.jpg

運行
心率例程主要提供了兩個 GATT 服務:電池電量、心率數據。其中電池電量服務返回的是偽電量值,數值從 100% 隨時間遞減到 0% 循環;心率服務返回的是隨機心率數據(單位bpm)。

輸入zephyr運行Example

使用nRF Connect軟件連接藍牙:

1.jpg

獲取心率服務和電池電量服務:

1.jpg

2.jpg

此時串口輸出:

initialize rti_board_start:0 done
initialize drv_pm_hw_init:0 done
initialize rt_hw_spi_init:0 done
| /

RT - Thread Operating System
/ | 5.0.1 build Sep 20 2023 22:16:27
2006 - 2022 Copyright by RT-Thread team
do components initialization.
initialize rti_board_end:0 done
initialize stm32l4_hw_lptim_init:0 done
initialize finsh_system_init:0 done
msh >zephyr
zephyr_polling_init
bt_init_hci_driver
SPI_init_process device_name: spi10, spi_name: spi1, rate: 1000000, databits: 8, LSB_MSB: 1, Master_Slave: 0, CPOL: 0, CPHA: 1
SPI_init_process cs_pin_num: 1, irq_pin_num: 0
hci_driver_open, SPI_config_finish
I: (bt_hci_core)hci_init():3230: work start.
msh >prepare_event_process, step: 1
prepare_event_process, step: 2
prepare_event_process, step: 3
prepare_event_process, step: 4
prepare_event_process, step: 5
I: (bt_hci_core)hci_init_end():3205: work end.
E: (bt_smp)smp_self_test():5695: smp_self_test start
I: (bt_hci_core)bt_dev_show_info():3008: Identity: 02:80:e1:00:00:f5 (public)
I: (bt_hci_core)bt_dev_show_info():3042: HCI: version 5.2 (0x0b) revision 0x1222, manufacturer 0x0030
I: (bt_hci_core)bt_dev_show_info():3044: LMP: version 5.2 (0x0b) subver 0x0015
Bluetooth initialized
Advertising successfully started
Connected
BAS Notifications enabled
HRS notifications enabled

數據吞吐例程運行與測試
軟件包配置

1.jpg

運行
數據吞吐例程內部邏輯是將接收到的數據轉發回中心設備。主要提供了兩個 GATT 服務:write 和 notify。前者用于接收中心設備發來的數據,后者用于向連接的中心設備發送數據。

輸入zephyr運行Example。

手機端使用 BLE調試寶(類似的BLE APP應該都行)連接設備,開啟notify服務:

1.jpg

連續發送數據:

1.jpg

收發數據沒有丟包。

串口打印如下:

initialize rti_board_start:0 done
initialize drv_pm_hw_init:0 done
initialize rt_hw_spi_init:0 done
| /

RT - Thread Operating System
/ | 5.0.1 build Sep 20 2023 22:39:47
2006 - 2022 Copyright by RT-Thread team
do components initialization.
initialize rti_board_end:0 done
initialize stm32l4_hw_lptim_init:0 done
initialize finsh_system_init:0 done
msh >zephyr
zephyr_polling_init
bt_init_hci_driver
SPI_init_process device_name: spi10, spi_name: spi1, rate: 1000000, databits: 8, LSB_MSB: 1, Master_Slave: 0, CPOL: 0, CPHA: 1
SPI_init_process cs_pin_num: 1, irq_pin_num: 0
hci_driver_open, SPI_config_finish
I: (bt_hci_core)hci_init():3230: work start.
msh >prepare_event_process, step: 1
prepare_event_process, step: 2
prepare_event_process, step: 3
prepare_event_process, step: 4
prepare_event_process, step: 5
I: (bt_hci_core)hci_init_end():3205: work end.
E: (bt_smp)smp_self_test():5695: smp_self_test start
I: (bt_hci_core)bt_dev_show_info():3008: Identity: 02:80:e1:00:00:f5 (public)
I: (bt_hci_core)bt_dev_show_info():3042: HCI: version 5.2 (0x0b) revision 0x1222, manufacturer 0x0030
I: (bt_hci_core)bt_dev_show_info():3044: LMP: version 5.2 (0x0b) subver 0x0015
Bluetooth initialized
throughput_svc_init()
Advertising successfully started
I: (bt_hci_core)bt_sleep_prepare_work():4040: start
I: (bt_hci_core)bt_sleep_prepare_work():4046: end
I: (bt_hci_core)bt_sleep_wakeup_work_start():4058: start
I: (bt_hci_core)bt_sleep_wakeup_work_start():4061: end
I: (bt_hci_core)bt_sleep_wakeup_work_end():4072: start
I: (bt_hci_core)bt_sleep_wakeup_work_end():4074: end
Connected

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 藍牙芯片
    +關注

    關注

    17

    文章

    376

    瀏覽量

    46055
  • SPI接口
    +關注

    關注

    0

    文章

    258

    瀏覽量

    34387
  • RT-Thread
    +關注

    關注

    31

    文章

    1291

    瀏覽量

    40169
  • MCU控制器
    +關注

    關注

    0

    文章

    27

    瀏覽量

    6885
  • STM32L476
    +關注

    關注

    0

    文章

    7

    瀏覽量

    3789
收藏 人收藏

    評論

    相關推薦

    RTT平臺zephyr_polling軟件包SPI Bluenrg2芯片宕機問題與修復

    項目的代碼測試完成之后,準備收尾時,出現了問題。清除掉開發過程中用來調試的print打印之后,zephyr_polling 的 HCI 突然不能正常工作了,之前測試可用的 zephyr_polling 中的各個例程都不再能運行。
    的頭像 發表于 09-25 17:08 ?1111次閱讀
    <b class='flag-5'>RTT</b>平臺<b class='flag-5'>zephyr_polling</b>軟件包<b class='flag-5'>SPI</b> <b class='flag-5'>Bluenrg2</b>芯片宕機問題與修復

    RTT zephyr_polling軟件包 Bluenrg2藍牙芯片啟動流程

    在用標準的 HCI 指令控制設備進行藍牙操作之前,需要提前通過 VS Command 對設備進行配置,只有正確配置好的設備才能正常使用。
    的頭像 發表于 09-27 11:19 ?1404次閱讀
    <b class='flag-5'>RTT</b> <b class='flag-5'>zephyr_polling</b>軟件包 <b class='flag-5'>Bluenrg2</b>藍牙芯片啟動流程

    如何用Ubuntu qemu跑zephyr_polling的藍牙?

    進入 RT-Thread online packages → IoT - internet of things 目錄即可看到 zephyr_polling軟件包,勾選軟件包。
    的頭像 發表于 09-28 11:24 ?1951次閱讀
    如何用Ubuntu qemu跑<b class='flag-5'>zephyr_polling</b>的藍牙?

    Xilinx FPGA2 pro使用說明

    從光盤上拷下來的,Xilinx FPGA2 pro使用說明,想要的拿去吧
    發表于 10-24 10:14

    RTThread Studio的芯片支持包使用說明

    介紹本倉庫為RTThread Studio的芯片支持包,目前暫時支持52832及52840的rtt完整版下載地址導入教程使用說明創建RTT工程選擇芯片及配置串口引腳(目前只支持選擇0端口)后,完成項目創建更改工程配置如果還需要藍
    發表于 08-04 10:48

    怎樣使用SDK中的Beacon示例對BLUENRG2進行重新編程呢?

    我希望使用 BLUENRG-M2 模塊構建一個帶有 BLUENRG2 的項目。我購買了一塊 X-NUCLEO-BNRG2A1 板開始使用,并將該板上的 SWDIO、SWDCLK、NRESET、VDD
    發表于 01-03 10:00

    BlueNRG-2最大SPI時鐘的速率限制有多嚴格?

    我目前正在使用 X-NUCLEO-BNRG2A1 來試驗 BlueNRG-2。我最初將 SPI 速率設置為 1.25 Mbit/s,但后來在 BlueNRG-2 文檔中注意到最大
    發表于 01-06 06:25

    硬件重置時BlueNRG-MS SPI事務意外響應怎么解決?

    -MS (SPI) 測試程序。我正在使用 STEVAL-IDB005V1D 板(帶有 BLUENRG-MS 芯片)和 NUCLEO-F446RE 板來讀取 SPI 信號。這是測試程序(AN4494 第 5
    發表于 01-06 07:27

    如何使用RT685的DSP搭配Zephyr OS?

    “evkmimxrt685_dsp_mu_polling”完成了此操作,它運行良好。 現在我想對 Zephyr OS 做同樣的事情。我用這個平臺制作了幾個應用程序,這適用于 ARM 部分。 我沒有
    發表于 05-18 08:04

    ESP8266_SPI模塊使用說明_Version 0.1

    ESP8266__SPI_Module_User Guide,SPI 模塊使用說明
    發表于 12-30 14:40 ?281次下載

    RT-Thread (2RTT SPI設備驅動流程 || LWIP + ENC28J60

    系列文章目錄RT-Thread (1) 添加外部內存到內存管理RT-Thread (2RTT SPI設備驅動流程 || LWIP + ENC28J60目錄0 概述0.0 參考資料0.1 硬件資源
    發表于 11-19 14:21 ?15次下載
    RT-Thread (<b class='flag-5'>2</b>) <b class='flag-5'>RTT</b> <b class='flag-5'>SPI</b>設備驅動流程 || LWIP + ENC28J60

    RTT zephyr_polling SPI Bluenrg2數據傳輸測試

    RTT 那邊的 Kconfig 配置完成,項目的基本開發內容就完成了。然后再對協議棧在 Bluenrg2 芯片上采用 SPI 作為 HCI 的數據傳輸進行測試。
    的頭像 發表于 09-25 16:25 ?902次閱讀
    <b class='flag-5'>RTT</b> <b class='flag-5'>zephyr_polling</b> <b class='flag-5'>SPI</b> <b class='flag-5'>Bluenrg2</b>數據傳輸測試

    RT-Thread平臺 zephyr_polling軟件包 Bluenrg2 藍牙芯片啟動流程

    地址:RTT_PACKAGE_zephyr_polling 前面已經完成了 SPI 接口的實現,要讓 zephyr_pollingBluenrg2 上運行起來,下一步是實現其特殊
    的頭像 發表于 09-27 18:40 ?911次閱讀
    RT-Thread平臺 <b class='flag-5'>zephyr_polling</b>軟件包 <b class='flag-5'>Bluenrg2</b> 藍牙芯片啟動流程

    實戰經驗 | BlueNRG-X 原理圖參數說明(附資料下載端口)

    關鍵詞:BlueNRG-1, BlueNRG-2, BlueNRG-LP/LPS 目錄預覽 1、前言 2BlueNRG-1/-
    的頭像 發表于 10-18 19:15 ?729次閱讀

    RTT平臺zephyr_polling軟件包SPI Bluenrg2丟包問題排查

    在對協議棧在 Bluenrg2 芯片上采用 SPI 作為 HCI 的數據傳輸進行測試的時候,發現存在丟包問題。
    的頭像 發表于 10-23 15:41 ?646次閱讀
    <b class='flag-5'>RTT</b>平臺<b class='flag-5'>zephyr_polling</b>軟件包<b class='flag-5'>SPI</b> <b class='flag-5'>Bluenrg2</b>丟包問題排查
    主站蜘蛛池模板: 99re5.久久热在线视频| 亚洲精品国产精麻豆久久99| 人妻精品久久无码专区| 亚洲午夜精品一区二区公牛电影院| xxxx美国老师1819| 噜噜噜在线AV免费观看看| 亚洲精品影院久久久久久| 国产精品系列在线一区| 日本十八禁无遮无挡漫画| a视频免费在线| 美女脱光app| 中文字幕中文字幕永久免费| 久久精品国产免费中文| 亚洲一区成人| 九九电影伦理片| 亚洲色图在线视频| 精品国产美女AV久久久久| 亚洲风情无码免费视频| 国产日韩成人内射视频| 亚洲AV无码乱码国产精品品麻豆 | 美女白虎穴| 伊人久久大香线蕉综合影| 九九热在线视频| 中文亚洲大香伊蕉不卡一区| 久久久精品3d动漫一区二区三区| 野花日本手机观看大全免费3| 精品国产乱码久久久久久下载| 亚洲婷婷天堂综合国产剧情| 久久黄色片| 97caopeng| 亲胸摸下面激烈免费网站| 帝王被大臣们调教高肉| 午夜福利理论片在线播放| 国产在线精彩亚洲| 依恋影院在线观看| 嫩草成人影院| 第一次处破女18分钟免费| 亚欧成人毛片一区二区三区四区 | 午夜影院视费x看| 黄色三级三级免费看| 最新日本免费一区|