ZHDA134 April   2026 CC1310 , CC1311P3 , CC1312PSIP , CC1312R , CC1312R7 , CC1314R10 , CC1350 , CC1352P , CC1352P7 , CC1352R , CC1354P10 , CC1354R10

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2使用标准命令导出的 PHY 设置
    1. 2.1 标准数据包格式(1 个长度字节)
      1. 2.1.1 使用 CMD_PROP_TX 和标准数据包格式(1 个长度字节)的 TX
      2. 2.1.2 使用 CMD_PROP_RX 和标准数据包格式(1 个长度字节)的 RX
      3. 2.1.3 使用 CMD_PROP_TX_ADV 命令和标准数据包格式(1 个长度字节)的 TX
      4. 2.1.4 使用 CMD_PROP_RX_ADV 和标准数据包格式(1 个长度字节)的 RX
    2. 2.2 标准数据包格式(2 个长度字节)
      1. 2.2.1 使用 CMD_PROP_TX_ADV 和标准数据包格式(2 个长度字节)的 TX
      2. 2.2.2 使用 CMD_PROP_RX_ADV 和标准数据包格式(2 个长度字节)的 RX
  6. 3使用高级命令导出的 TX 和 RX 设置
    1. 3.1 高级数据包格式
      1. 3.1.1 使用 CMD_PROP_TX_ADV 和高级数据包格式的 TX
      2. 3.1.2 使用 CMD_PROP_RX_ADV 和高级数据包格式的 RX
    2. 3.2 标准数据包格式(1 个长度字节)
      1. 3.2.1 使用 CMD_PROP_TX_ADV 命令和标准数据包格式(1 个长度字节)的 TX
      2. 3.2.2 使用 CMD_PROP_RX_ADV 和标准数据包格式(1 个长度字节)的 RX
    3. 3.3 标准数据包格式(2 个长度字节)
      1. 3.3.1 使用 CMD_PROP_TX_ADV 和标准数据包格式(2 个长度字节)的 TX
      2. 3.3.2 使用 CMD_PROP_RX_ADV 和标准数据包格式(2 个长度字节)的 RX
  7. 4参考资料

使用 CMD_PROP_TX_ADV 和标准数据包格式(2 个长度字节)的 TX

与第 2.1.3 节中示例中所示设置相比,无需更改设置。

仅需执行以下修改:

  • 将 LENGTH_FIELD 从 1 修改为 2
  • 将两个长度字节添加到数据包中

需修改的代码位于在第 7 行和第 38-48 行。

1:  //---------------------------------------------------------------------------------------------
2:  // Transmit Standard Packet Format with CMD_PROP_TX_ADV (2 Length Bytes)
3:  //---------------------------------------------------------------------------------------------
4:
5:  // Defines
6:  #define PAYLOAD_LENGTH 3 // Max 4093 bytes
7:  #define LENGTH_FIELD   2 // Changed from 1
8:
9:  uint8_t packet[LENGTH_FIELD + PAYLOAD_LENGTH];
10:
11: static RF_Object rfObject;
12: static RF_Handle rfHandle;
13:
14: void *mainThread(void *arg0)
15: {
16:     RF_Params rfParams;
17:     RF_Params_init(&rfParams);
18:
19:     RF_cmdPropTxAdv.numHdrBits = 0x0; // Settings that must change to support 
20:                                       // the standard packet format
21:
22:     RF_cmdPropTxAdv.pktLen = LENGTH_FIELD + PAYLOAD_LENGTH; // Application specific 
23:     RF_cmdPropTxAdv.pPkt = packet;                          // settings
24:
25:     // Settings to modify if going from a PHY that uses the standard TX command 
26:     // to use the advanced TX command
27:     RF_cmdPropTxAdv.condition.rule = 0x1;
28:     RF_cmdPropTxAdv.pktConf.bUseCrc = 0x1;
29:
30:     rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, 
31:                        &rfParams);
32:     RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
33:
34:     while(1)
35:     {
36:         //-------------------------------------------------------------------------------------
37:         // Could be placed outside the while(1) since the packet does not change
38: #ifdef SLR_MODE
39:         packet[0] = (uint8_t)(PAYLOAD_LENGTH);
40:         packet[1] = (uint8_t)(PAYLOAD_LENGTH >> 8);
41: #else
42:         packet[0] = (uint8_t)(PAYLOAD_LENGTH >> 8);
43:         packet[1] = (uint8_t)(PAYLOAD_LENGTH);
44: #endif
45:         for (uint16_t i = 2; i < (LENGTH_FIELD + PAYLOAD_LENGTH); i++) 
46:         {                                                             
47:             packet[i] = i - 1;
48:         }
49:         //-------------------------------------------------------------------------------------
50:         RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTxAdv, RF_PriorityNormal, NULL, 0);
51:         RF_yield(rfHandle);
52:         usleep(500000);
53:     }
54: }

请注意,如果您正在使用 SimpleLink 远距离 (SLR) PHY 或传统远距离 PHY(仅限 CC13x0),则这两个长度字节的写入顺序需要与使用其他任何专有 PHY 时相反。