16,471
社区成员
发帖
与我相关
我的任务
分享
// 获取接收发射状态字
{
// UINT1 * p=(UINT1 * )&WSRP4_DSPStatus[dspSPI2H16St];
// g_Status.TransmitterParam.Bits[0]=p[0];
// g_Status.TransmitterParam.Bits[1]=p[1];
UINT1 * p=(UINT1 * )&WSRP4_DSPStatus[dspSPI2MH16St];
// g_Status.ReceiverParam.Bits[5]=p[0];
g_Status.TransmitterParam.Bits[0]=p[1]; // 获取发射状态字
g_Status.TransmitterParam.Bits[0] &= 0xBF; // 输出功率 监测置0
// g_Status.TransmitterParam.Bits[3]=p[1];
g_DebugLog.L14_DIFR[0]=WSRP4_DSPStatus[dspLnkSt];
g_DebugLog.L14_DIFR[1]=WSRP4_DSPStatus[dspDifrSt];
g_DebugLog.L15_Receiver[0]=WSRP4_DSPStatus[dspSPI2H16St]; // 最高 16 位
g_DebugLog.L15_Receiver[1]=WSRP4_DSPStatus[dspSPI2MH16St]; // 次高 16 位
g_DebugLog.L15_Receiver[2]=WSRP4_DSPStatus[dspSPI2ML16St]; // 次低 16 位
g_DebugLog.L15_Receiver[3]=WSRP4_DSPStatus[dspSPI2L16St]; // 最低 16 位
g_Status.ReceiverParam.Bits[5] = g_DebugLog.L15_Receiver[0] & 0x00FF; // 获取接收状态字
g_Status.ReceiverParam.Bits[6] = (g_DebugLog.L15_Receiver[1] & 0xFF00)>>8; // 右移8位,除256
// g_Status.TransmitterParam.Bits[0] = g_DebugLog.L15_Receiver[1] & 0x00FF;
}
从代码中,我发现,发射机获取控制字时,获取的位数有变化。注释掉的,是最早获取 高16位作为发射机的控制字,现在的代码里,是获取次高16位作为发射机的控制字。 所以,现在发现接收到的发射机的控制字进行解析后,全部是0,是否是因为发射机的控制字根本没有获取到?就是说,次高16位获取的并不是发射机的控制字?
您怎么看待这个问题?