|

楼主 |
发表于 2016-3-6 11:51:33
|
显示全部楼层
回 eric2013 的帖子
eric2013:V5板子,裸机例子高级篇里面,有Si4730的例子,在相应的Si4730驱动里面就有获取Si4730 RSSI参数的函数。 (2016-03-06 09:42)  你好,还是你们提供的函数好用啊,不过有有个疑问,
/*
*********************************************************************************************************
* 函 数 名: SI4730_GetFMSignalQuality
* 功能说明: 读取FM接收信号质量
* 形 参: _ReadBuf 返回结果存放在此缓冲区,请保证缓冲区大小大于等于7
* 返 回 值: 0 失败, 1 成功
*********************************************************************************************************
*/
uint8_t SI4730_GetFMSignalQuality(uint8_t *_ReadBuf)
{
/*
FM_RSQ_STATUS
Queries the status of the Received Signal Quality (RSQ) for
the current channel.
CMD 0x23 FM_RSQ_STATUS
ARG1 0x01 Clear RSQINT
STATUS ?0x80 Reply Status. Clear-to-send high.
RESP1 ?0x00 No blend, SNR high, low, RSSI high or low interrupts.
RESP2 ?0x01 Soft mute is not engaged, no AFC rail, valid frequency.
RESP3 ?0xD9 Pilot presence, 89% blend
RESP4 ?0x2D RSSI = 45 dBμV
RESP5 ?0x33 SNR = 51 dB
RESP6 ?0x00
RESP7 ?0x00 Freq offset = 0 kHz
*/
uint8_t ucCmdBuf[32];
uint32_t uiTimeOut;
uint32_t i;
ucCmdBuf[0] = 0x23;
ucCmdBuf[1] = 0x01;
SI4730_SendCmd(ucCmdBuf, 2);
uiTimeOut = SI4730_WaitStatus80(1000, 0);
if (uiTimeOut == 0)
{
return 0;
}
/* 连续读取7个字节的器件返回信息 */
for (i = 0; i < 7; i++)
{
i2c_Ack();
_ReadBuf = i2c_ReadByte();
}
i2c_NAck();
i2c_Stop();
return 1;
}
就是这个 数组定义,uint8_t ucCmdBuf[32]; ,实际使用最多8个就足够了,怎么需要定义成32个啊 ??
|
|