This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
讀取暫存器資料RSSI 與LQI一直為定值,只有在特定無法收訊的時候會產生值得變化
您好,请看如下答复:
不确定是否已完全理解上述代码以及您实际上是如何读取 RSSI 的。 作为首次测试,您应执行以下操作:
void main(void) { // initialize MCU and peripherals initMCU(); // Write radio registers registerConfig(); trxSpiCmdStrobe(CC1101_SRX); do{ cc1101SpiReadReg(CC1101_MARCSTATE,&marcstate,1); } while ((marcstate & 0x1F) != 0x0D); while(1) { cc1101SpiReadReg(CC1101_RSSI,&rssi,1); // cc1101SpiReadReg(CC1101_LQI,&lqi,1); // No point in reading LQI here as no packets are received } }
对于寄存器设置,请使用 SmartRF Studio 给出的一些默认设置,例如:
// Address Config = No address check // Base Frequency = 432.999817 // CRC Autoflush = false // CRC Enable = true // Carrier Frequency = 432.999817 // Channel Number = 0 // Channel Spacing = 199.951172 // Data Format = Normal mode // Data Rate = 38.3835 // Deviation = 20.629883 // Device Address = 0 // Manchester Enable = false // Modulated = true // Modulation Format = GFSK // PA Ramping = false // Packet Length = 255 // Packet Length Mode = Variable packet length mode. Packet length configured by the first byte after sync word // Preamble Count = 4 // RX Filter BW = 101.562500 // Sync Word Qualifier Mode = 30/32 sync word bits detected // TX Power = 0 // Whitening = false // PA table #define PA_TABLE {0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00} static const registerSetting_t preferredSettings[]= { {CC1101_IOCFG0, 0x06}, {CC1101_FIFOTHR, 0x47}, {CC1101_PKTCTRL0, 0x05}, {CC1101_FSCTRL1, 0x06}, {CC1101_FREQ2, 0x10}, {CC1101_FREQ1, 0xA7}, {CC1101_FREQ0, 0x62}, {CC1101_MDMCFG4, 0xCA}, {CC1101_MDMCFG3, 0x83}, {CC1101_MDMCFG2, 0x13}, {CC1101_DEVIATN, 0x35}, {CC1101_MCSM0, 0x18}, {CC1101_FOCCFG, 0x16}, {CC1101_AGCCTRL2, 0x43}, {CC1101_WORCTRL, 0xFB}, {CC1101_FSCAL3, 0xE9}, {CC1101_FSCAL2, 0x2A}, {CC1101_FSCAL1, 0x00}, {CC1101_FSCAL0, 0x1F}, {CC1101_TEST2, 0x81}, {CC1101_TEST1, 0x35}, {CC1101_TEST0, 0x09}, };
当运行上面的代码时,您会看到 RSSI 正在读数之间变化。
在这种情况下,LQI 将为0x00,因为该寄存器仅在发现同步字后更新。对于该初始测试,我们并不会发送任何内容,只是读取本底噪声的 RSSI。