PHY6252开发法基础概括

资料地址: 欢迎使用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打开后

PHY6252开发法基础概括_第1张图片

//

//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如下:

PHY6252开发法基础概括_第2张图片

烧录方法如下:

PHY6252开发法基础概括_第3张图片

开发板推荐:

PHY6252开发法基础概括_第4张图片

你可能感兴趣的:(蓝牙芯片编程,c语言,蓝牙,PHY6252)