[英]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.