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.

[参考译文] LAUNCHXL-CC1310:CC1310 -通过按压按钮更改 Rx 频率

Guru**** 656470 points
Other Parts Discussed in Thread: CC1310
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1170632/launchxl-cc1310-cc1310---change-rx-frequency-from-button-press

器件型号:LAUNCHXL-CC1310
主题中讨论的其他器件:CC1310

我从 rfPacketRx 示例开始、并希望根据按下按钮来更改 RX 频率。  我创建了一个名为 setFrequency()的函数,在按下按钮时调用该函数。  但我得到的行为是、Rx 频率似乎与初始化时调用的原始设置没有变化。  我出了什么问题?

uint32_t RxFrequencies[8] = {916000000, 916250000, 916500000, 916750000, 917000000, 917250000, 917500000, 917750000};

/***** Function definitions *****/
void setFrequency(uint8_t channel)
{
    if(channel > sizeof(RxFrequencies)) channel = 0;

    uint32_t frequ = RxFrequencies[channel];

    RF_cmdFs.frequency = frequ / 1000000;
    RF_cmdFs.fractFreq = (frequ % 1000000) * 0.065536;

    RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
    RF_postCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, &callback, RF_EventRxEntryDone); // Initialize receive mode and callback
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Abraham、

    我已经对您的方法进行了测试、不过对于 CMD_TX、它似乎起作用、如下所示:



    如何执行回调函数? 您是否像这样将"setFrequency"直接关联到回调处理程序?:

    GPIO_setCallback(Board_GPIO_BUTTON0, gpioButtonFxn0);


    或者是否有一个中间回调函数使用正确的通道参数调用 setFrequency? 我提出这一问题是因为只能从任务或 SWI 上下文调用 RF_postCmd。

    还可以通过检查 RF_cmdF 和 RF_cmdPropRx 的相应状态字段(CC1310技术参考手册的第23.3.2.6.1节)来检查其状态。

    此致、

    Arthur