資料位址: 歡迎使用PhyPlus Wiki! [PHYPLUS Wiki]
SDK 3.x.x 應用于 PHY6222/PHY6252
SDKs [PHYPLUS Wiki]
比較懶得可從如下連結擷取
PHY6252開發資源合集-其它文檔類資源-CSDN文庫
實際SDK下序列槽AT透傳例程為
PHY62XX_SDK_3.1.1\release_bbb_sdk-PHY62XX_SDK_3.1.1\example\ble_peripheral\bleUart_AT
其中OSAL與射頻部分是不開源的,開發有一定難度
用Keil打開後

//
//bleUart_At軟體流程如下:
//bleUart_At軟體主要是用于序列槽透傳,一般這種工程主要關注收發就行。
// 1、收 uart -> 主機。收通過序列槽rx來收。收分為兩個階段,連接配接和未連接配接階段。
// a、程式最初為未連接配接狀态,初始化uart函數為at_uart_init,将未連接配接時序列槽的收發回調函數設定為ProcessUartData,用于接收at指令。當有rx接收到資料時觸發回調事件UART_EVT_TYPE_RX_DATA,在該事件中會将接收到的資料放到cmdstr
// 數組中,然後發送一個BUP_OSAL_EVT_AT_UART_RX_CMD到bleuart_TaskID任務。在BUP_OSAL_EVT_AT_UART_RX_CMD事件中解析接收到的at指令。
// b、如果連接配接到了主機,會觸發連接配接事件BUP_OSAL_EVT_AT_BLE_CONNECT,然後調用BUP_init初始化序列槽,将序列槽的收發回調函數設定為uart_evt_hdl。當連接配接成功後将接收到的資料作為透傳資料而不是at指令資料,這也是為什麼要兩次初始化
// 序列槽的原因。當有rx接收到資料時觸發回調事件UART_EVT_TYPE_RX_DATA,首先會判斷接收到的資料是不是睡眠喚醒前導,一般晶片進入睡眠要喚醒的話要發一串0xFE前導碼喚醒晶片,然後将接下來的資料放到buf中,再發送一個BUP_OSAL_EVT_UART_TO_TIMER
// 事件到bleuart_TaskID任務。在BUP_OSAL_EVT_UART_TO_TIMER事件中調用BUP_data_uart_to_BLE将接收到的資料通過notify透傳給主機。
// 2、發 主機 -> uart。主機将資料通過write發送給從機,從機接收後通過uart列印。
// a、當主機發送資料給從機後,協定棧會調用回調函數on_bleuartServiceEvt,該函數的bleuart_EVT_BLE_DATA_RECIEVED事件會将接收到的資料放到數組中,同時列印出來。然後會發送一個事件BUP_OSAL_EVT_UART_DATA_RX到bleuart_TaskID,
// 然後在BUP_OSAL_EVT_UART_DATA_RX該事件中解析收到的資料,本工程沒有解析資料而是直接将接收到的資料發回給主機。
//以上就是整個bleUart_At軟體的大緻流程,其中當沒有連接配接時,那麼系統将會在沒有任何操作後20S後進入睡眠。
//
OSAL如下:
燒錄方法如下:
開發闆推薦: