概述
本文开发环境
- sdk: gecko_sdk_3.1
- IDE: Simplicity Studio 5.0
在项目初期需要调试天线相关的参数,需要芯片发射一个单载波,也就是频率固定的电磁波,以便调整相关参数。如果条件允许直接使用官方提供的DTM程序即可。但对于没有串口的情况可以在Bluetooth SoC Empty工程的基础上稍作修改即可。
第一步
安装DTM
第二步
修改代码,如下
#include "em_common.h"
#include "sl_app_assert.h"
#include "sl_bluetooth.h"
#include "gatt_db.h"
#include "app.h"
#include "sl_bt_api_compatibility.h"
#define SL_STACK_TIMER_PRBS 100
#define SL_STACK_TIMER_TONE 101
enum packet_type {
PACKET_TYPE_PRBS9 = 0, // binary 00 -> PRBS9 Packet Payload
PACKET_TYPE_11110000 = 1, // binary 00 -> 11110000 Packet Payload
PACKET_TYPE_10101010 = 2, // binary 10 -> 10101010 Packet Payload
PACKET_TYPE_11111111 = 3, // binary 11 -> On the LE Coded PHY: 11111111
PACKET_TYPE_MAX
};
enum phy {
PHY_NONE = 0,
PHY_1M = 1,
PHY_2M = 2,
PHY_CODED_S_8 = 3,
PHY_CODED_S_2 = 4,
PHY_MAX
};
// Array for mapping standard UART Test Interface command packet types to bgapi test_packet_type
static test_packet_type_t std_to_bgapi_pkt_types[PACKET_TYPE_MAX] = {
[PACKET_TYPE_PRBS9] = test_pkt_prbs9,
[PACKET_TYPE_11110000] = test_pkt_11110000,
[PACKET_TYPE_10101010] = test_pkt_10101010,
[PACKET_TYPE_11111111] = test_pkt_11111111
};
void sl_bt_on_event(sl_bt_msg_t *evt)
{
sl_status_t sc;
bd_addr address;
uint8_t address_type;
uint8_t system_id[8];
switch (SL_BT_MSG_ID(evt->header)) {
//当收到sl_bt_evt_system_boot_id事件之后不要做任何蓝牙相关的操作,设置一个定时器。
case sl_bt_evt_system_boot_id:
sl_bt_system_set_soft_timer(3000,SL_STACK_TIMER_PRBS,1);
break;
}
//定时器事件
case sl_bt_evt_system_soft_timer_id:
{
switch(evt->data.evt_system_soft_timer.handle)
{
case SL_STACK_TIMER_PRBS:
//需要先发该数据
sc = sl_bt_test_dtm_tx_v4(std_to_bgapi_pkt_types[PACKET_TYPE_PRBS9] ,255,0,PHY_1M,6);
break;
case SL_STACK_TIMER_TONE:
sc = sl_bt_test_dtm_end();
//这里的第一个参数填0xfe才为单载波
sc = sl_bt_test_dtm_tx_v4(0xfe ,255,0,PHY_1M,6);
break;
default :
break;
}
}
break;
case sl_bt_evt_test_dtm_completed_id:
{
static int once = 1;
if(once)
sl_bt_system_set_soft_timer(3000,SL_STACK_TIMER_TONE,1);
once = 0;
}
break;
default:
break;
}
最后
以上就是鲜艳泥猴桃为你收集整理的silicon EFR32BG22发送单载波的全部内容,希望文章能够帮你解决silicon EFR32BG22发送单载波所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复