CC1310 用SmartRF Studio控制的时候、接收到的信号值,跟具体程序运行的时候、接收包中获取的信号值,差别很大,比如前者为-80dbm,后者为-200dmb,请问怎么回事呢?
Viki Shi:
请问是否是用例程测试?SmartRF Studio是直接测硬件,如果具体程序运行时信号差,说明代码有改进空间
user6045094:
回复 Viki Shi:
是用例程测试,问题是信号值的获取,是直接从rxStatistics.lastRssi这个变量获取的呀,并不用本人代码上加什么计算
Viki Shi:
回复 user6045094:
1、除了使用SmartRF Studio/具体程序这一个变量,其他外部条件都一模一样?
2、请问测试的是开发板还是自制板?
3、是否能多测试几块板子,现象都一样吗?
user6045094:
回复 Viki Shi:
外部条件都一样的,是用自己制作的板子和别的厂家的板子,测试了几块,都是一样,
user6045094:
回复 Viki Shi:
是不是还要用什么公式算呀,
Viki Shi:
回复 user6045094:
不需要公式,直接那个结构体里读取lastRssi即可
If in Rx, the function RF_getRssi() returns the RSSI value. After receiving a packet the radio will no longer be in RX mode unless bRepeatOk = 1. The RSSI of a received packet can be read from the rfc_propRxOutput_t structure.
In the code, add:
static rfc_propRxOutput_t rxStatistics; int8_t RSSIout;// Under Modify CMD_PROP_RX command for application needs RF_cmdPropRx.pOutput = (uint8_t*)&rxStatistics;// Where you want to read out the RSSI in the code RSSIout = rxStatistics.lastRssi;
user6045094:
回复 Viki Shi:
现在就是在这个结构体读取,目前读出来的值为十进制183,小于1米的固定距离,用函数 RF_getRssi()读出来的值为-128.
Viki Shi:
回复 user6045094:
-128应该是无效的RSSI,调用RF_getRssi()时RF core必须处于RX模式,否则将返回-128(无效的RSSI)
user6045094:
回复 Viki Shi:
但是接收一包数据后,从rxStatistics.lastRssi读出的值为183怎么解释呢
user6045094:
回复 Viki Shi:
可以帮忙解答下吗?