硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5093|回复: 6
收起左侧

[有问必答] 获取 Si47XX_FM_Get_RSSI(unsigned char *pRSSI) 失败 ????

[复制链接]

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2016-3-5 18:32:35 | 显示全部楼层 |阅读模式
/**************************************

Si47XX_FM_Get_RSSI()

***************************************/

T_ERROR_OP Si47XX_FM_Get_RSSI(unsigned char *pRSSI)
{
    unsigned short loop_counter = 0;
    unsigned char Si47XX_reg_data[32];   
    unsigned char error_ind = 0;
    unsigned char Si47XX_rsq_status[] = {0x23,0x00};   

    //send CMD
     error_ind = OperationSi47XX_2w(WRITE, &(Si47XX_rsq_status[0]), 2);
    if(error_ind)
        return I2C_ERROR;

    //wait CTS = 1
    do
    {   
        error_ind = OperationSi47XX_2w(READ, &(Si47XX_reg_data[0]), 1);
        if(error_ind)
            return I2C_ERROR;   
        loop_counter++;
    }
    while(((Si47XX_reg_data[0]&0x80) == 0) && (loop_counter < 0xff));  //loop_counter limit should guarantee at least 300us

    if(loop_counter >= 0xff)
        return LOOP_EXP_ERROR;

    error_ind = OperationSi47XX_2w(READ, &(Si47XX_reg_data[0]), 8);   
    if(error_ind)
        return I2C_ERROR;
    *pRSSI = Si47XX_reg_data[4];
    return OK;
}

上面的函数获取 rssi 值失败, 官网提供的,但是程序能够正常调节 电台频率,获取rev 版本信息正常,

请教是何故啊 ???
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2016-3-5 18:35:10 | 显示全部楼层
我们的工程代码里面有这个Get RSSI的函数,我测试了,挺好用,参看下。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2016-3-6 09:20:34 | 显示全部楼层

回 eric2013 的帖子

eric2013:我们的工程代码里面有这个Get RSSI的函数,我测试了,挺好用,参看下。 (2016-03-05 18:35)
好的,我去看看研究一下

还有请问下,是哪个名称的历程啊 ??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2016-3-6 09:42:22 | 显示全部楼层

回 hpdell 的帖子

hpdell:好的,我去看看研究一下

还有请问下,是哪个名称的历程啊 ?? (2016-03-06 09:20) 
V5板子,裸机例子高级篇里面,有Si4730的例子,在相应的Si4730驱动里面就有获取Si4730 RSSI参数的函数。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 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个啊 ??


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2016-3-6 13:05:00 | 显示全部楼层

回 hpdell 的帖子

hpdell:你好,还是你们提供的函数好用啊,不过有有个疑问,

/*
*********************************************************************************************************
....... (2016-03-06 11:51) 
用8个就定义成8个即可,估计是没有改过来。这种问题不必纠结,都是用栈空间,用完就释放了。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2016-3-7 10:30:11 | 显示全部楼层

回 eric2013 的帖子

eric2013:用8个就定义成8个即可,估计是没有改过来。这种问题不必纠结,都是用栈空间,用完就释放了。 (2016-03-06 13:05) 
原来如此啊,多谢指点 ??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 21:22 , Processed in 0.068690 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表