BLE PRF SAMPLE¶
1 功能概述¶
此项目演示BLE从机和2.4g同时工作双模例程,BLE从机例程介绍参考文档bleprph_hr.md。此例程是在bleprph_hr例程基础上增加了prf 2.4g相关功能。
2 环境要求¶
board:
pan107x evb
uart(option): 用来显示串口log(波特率921600,选项
8n1
)手机app
nrf connect
4 演示说明¶
烧录完成后,设备复位会显示上电log,上电后的log如下:
[15:57:38.486]收←◆Try to load HW calibration data.. WARNING: Cannot find valid calib data in current chip! - Chip Flash UID : 425031563233391711550D3756039C78 - Chip Flash Size : 512 KB [15:57:38.519]收←◆rcl calib:30284 [15:57:38.840]收←◆LL Spark Controller Version:d7c4bfa [15:57:38.910]收←◆app started [15:57:39.421]收←◆tx done [15:57:39.921]收←◆tx done [15:57:40.421]收←◆tx done
“tx done”是2.4g发送完一包后的打印,例程默认每隔500ms发送一次。
使用手机
nrf connect
扫描蓝牙设备名称ble_hr
并且连接广播和连接的同时也能发送2.4g包。
5 2.4g初始化说明¶
2.4g初始化必须在BLE开始广播前,2.4g初始化代码如下:
pan_ant_init();
extern uint32_t BB_UsToTick(uint32_t us);
extern uint32_t RTC_GetCurrentTick(void);
uint32_t tick = RTC_GetCurrentTick();
prf_tx.interval = BB_UsToTick(500000); //prf interval 500ms
prf_tx.slot_duration = 6; //prf work duration 6 * 1.25ms
prf_tx.before_point = 0;
prf_tx.anchor_point = tick;
prf_tx.AntStartCback = prf_event_handler; //prf event cb
prf_tx.AntStopCback = NULL;
prf_tx.priority = 0; //priority lowest 0,1,2; 2 highest
pan_ant_create(&prf_tx);
panchip_prf_init(&tx_config);
panchip_prf_set_chn(tx_config.rf_channel);
/*adr match bit */
PRI_RF_SetAddrMatchBit(PRI_RF, 0);
panchip_prf_set_data(&tx_payload);
/* Begin advertising */
blehr_advertise();
需要定义一个结构体”ab_event_node_t”
首先调用”pan_ant_init”接口,然后注册结构体”pan_ant_create(&prf_tx)”
结构体中需要填写几个关键参数:interval、slot_duration、anchor_point、AntStartCback、priority。
注册完2.4g事件后就可以启动2.4g收发了,例程在500ms定时回调中启动2.4g发射
发射完成后会有tx的中断