大家好、
我已经在 Smart RF Studio 的帮助下收到 BLE 数据包、将通道设置为37、38或39。 我知道、此软件使用无线电命令来配置和强制无线电使用此命令进行侦听。
CMD_RADIO_SETUP 已执行
>状态:0x400 DONE_OK
>CMD_FS 已执行
>状态:0x400 DONE_OK
已执行>CMD_BLE_general_RX
>状态:0x2激活
是否有使用此命令的示例? 我已经下载了 BLE 堆栈、我可以看到我找不到任何此实现。
我的目的是了解这在命令级别的工作方式、以便为 Contiki 编写接收函数。
在 Contiki 中、已经有一个使用 CMD_BLE_ADV_NC 发送通告数据包的示例、但对于接收器件、没有通告数据包。
我尝试编写如下函数:
#define BLE_ACCESS_ADDRESS 0x8E89BED6
静态 dataQueue_t Rx_data_queue ={0};
静态 int
SEND_ble general_rx ()
{
uint32_t cmd_status;
RFC_CMD_BLE_general_RX_t cmd;
RFC_bleGenericRxPar_t *参数;
Params =(RFC_bleGenericRxPar_t *) ble_params_buf;
/*清除两个缓冲区*/
memset (&cmd、0x00、sizeof (cmd));
memset (ble_params_buf、0x00、sizeof (ble_params_buf));
/* Adv RX */
cmd.commandNo = CMD_BLE_general_RX;//
cmd.condition.rule = COND_Never;//
cmd.whitening.bOverride = 0;
cmd.whitening.init = 0;
cmd.pParams =参数;//
cmd.channel = 37;//
/*设置 BLE 参数*/
params->accessAddress = BLE_ACCESS_ADDRESS;//
params->endTrigger.triggerType = trig_never;//
Params->EndTime = trig_never;//
/*设置 BLE 参数*/
Params =(RFC_bleGenericRxPar_t *) ble_params_buf;
params->pRxQ =&rx_data_queue;
if (rf_core_send_cmd ((uint32_t)&cmd、&cmd_status)=rf_core_cmd_error){
printf ("send_generic_rx_nC:chan=%d CMDSA=0x%08lX、status=0x%04x\n"、
37、cmd_status、cmd.status);
返回 RF_CORE_CMD_ERROR;
}
返回 RF_CORE_CMD_OK;
}
当我使用它时、它不会返回任何错误、但我还不知道我是否可以获取数据、以防它正常工作。
如果有人能给我一点建议、我会很喜欢这里的信息。
谢谢