簡體   English   中英

bluenrg-ms/stm32F4: Hci 數據包通過 spi

[英]Bluenrg-ms/stm32F4 : Hci packet through spi

我正在開發一個開發 ble 通信的項目,但我在初始化和理解 ble 的返回幀時遇到了一些麻煩。

降低cs后,用HAL_SPI_TransmitReceive測試header(0x0A,0x00,0x00,0x00,0x00)並在hci_reset(0x01,0x03,0x0C,0x00)之后直接發送,我想從ble讀取返回值。

所以再降低一次 cs,測試 header (0x0B,0x00,0x00,0x00,0x00) 並使用 HAL_SPI_TransmitReceive 發送虛擬數據。 我得到這個幀:0x02、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00。

但從我目前的理解來看,我應該得到類似:0x04,0x0E,0x04,0x01,0x03,0x0C,0x00。

有人可以指出我錯在哪里嗎?

幾乎解決了。

實際上,我更改了代碼中的一些點,最后從 ble 中檢索到與我等待的數據相對應的數據。

我之前所做的是在從 ble 收到正確的 header 后關閉框架。 然后發送 header 寫入命令然后發送命令。

這就是我應用的程序: 信息通信 spi(寫入): • 打開 CS ◦ 在 TransmitReceive 中發送 header_master[5]={0x0a,0,0,0,0} ▪ 如果 header_slave[0]=0x02 和 header_slave[1] >0 • 發送命令 • 關閉 CS ▪ 否則 • 關閉 CS • 轉到打開 CS

信息通信 spi(讀取): • 等待 exti from ble ◦ 打開 CS ▪ 在 TransmitReceive 中發送 header_master[5]={0x0b,0,0,0,0} • 如果 header_slave[0]=0x02 和 header_slave[3]> 0 ◦ send (header_slave[3]) dummies ◦ close CS • else ◦ close CS ◦ goto open CS

希望可以幫助一些人。

現在我面臨另一個問題。 發送命令后我沒有收到中斷,所以我進行輪詢以捕獲我需要的幀。 有什么解決辦法嗎?

您必須始終先開始重置 bluenrg:這將導致 bluenrg 觸發中斷。 目前尚不清楚沒有硬重置的行為是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM