Part Number:LAUNCHXL-CC1310
尊敬的TI工程师:
我现在基于simplelink_cc13x0_sdk_4_20_02_07中的rfPacketErrorRate进行改变,将原来例程中发送的数据替换成采集到的ADC数据,但是现在为什么接收端收集到数据后打印出来的结果确是0,代码如下。
if(buffer_flag == 0){for (i = 1; i < 125; i++){a = i + i ;pPacket[a] = packet[a] = (uint8_t)(adc_buffer2[i] >> 8);pPacket[a+1] = packet[a+1] = (uint8_t)(adc_buffer2[i]);}}if(buffer_flag == 1){for (i = 1; i < 125; i++){a = i + i ;pPacket[a] = packet[a] =(uint8_t)adc_buffer1[i] >> 8;pPacket[a+1] = packet[a+1] =(uint8_t)adc_buffer1[i];}}
若是我将
pPacket[a] = packet[a] = (uint8_t)(adc_buffer2[i] >> 8);pPacket[a+1] = packet[a+1] = (uint8_t)(adc_buffer2[i]);
替换成
pPacket[a] = packet[a] = 0xff;pPacket[a+1] = packet[a+1] = 0xff;
那么接收端打印出来的数据便是正确的。
我想知道这是什么问题。
期待收到您的回复!
Alex Zhang:
您好,您这边adcbuffer有没有收到数据?有进行debug吗?
,
SHAO MENG:
adcbuffer是通过sensor control接收数据的,接收到数据了,并可以通过串口打印出来。
,
Alex Zhang:
现在的问题是在接收端可以收到adcbuffer,debug也可以看到adc的数据,但是print不出来对吧?
,
SHAO MENG:
使用例程显示误码率为零,但是就是在接收端打印出来为零,我在接收端随机打印了一个数据,这个数据不应该为零的,但是打印出来却为零。
我在接收函数中将接收到的数据包中的数据选择一个打印出来,代码如下
case RfSetup_Hsm:payloadLength = ((*(uint8_t*)(¤tDataEntry->data + RX_FRAME_HSM_OFFSET_LEN)) |(*(uint8_t*)(¤tDataEntry->data + (RX_FRAME_HSM_OFFSET_LEN + 1))) << 8);pktSeqNum= (((*(uint8_t*)(¤tDataEntry->data + RX_FRAME_HSM_OFFSET_SERIAL)) << 8) |(*(uint8_t*)(¤tDataEntry->data + (RX_FRAME_HSM_OFFSET_SERIAL + 1))));RX_data= (((*(uint8_t*)(¤tDataEntry->data + RX_FRAME_HSM_OFFSET_DATA+2)) << 8) |(*(uint8_t*)(¤tDataEntry->data + (RX_FRAME_HSM_OFFSET_DATA + 3))));timestampOffset = RX_FRAME_HSM_OFFSET_TIMESTAMP(payloadLength);break;
,
Alex Zhang:
[deleted]
,
Alex Zhang:
现在的问题是你现在接收端buffer里面有没有数据,定位问题是数据传输问题还是说是这边哪段代码的问题。
,
Alex Zhang:
你debug看看接收端的adcbuffer,看看有没有数据在,没有的话,应该是传输问题。
,
SHAO MENG:
你好:
我这边已经发现问题了,是发送端组建数据包时只是在初始化程序中将ADC数据组进了包里面,但是这是ADC还未完成采样,此时的adcbuffer依然是0,所以后面也就一直接收到是零了,后面又在tx_callback()中加入了更新数据包的程序,现在接收端可以正常的接收到发送过去的数据了。
非常感谢您的持续关注!