BasicRF 简析(五:appLight()简析)

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

* @fn          appLight

*

* @brief       Application code for light application. Puts MCU in endless

*              loop waiting for user input from joystick.

*              //等待接收的死循环;

* @param      basicRfConfig - file scope variable. Basic RF configuration data

             //BasicRF基本配置参数;

*              pRxData - file scope variable. Pointer to buffer for RX data

*              //指向接收数据的缓冲区;

* @return      none

*/

static void appLight()

{

    halLcdWriteLine(HAL_LCD_LINE_1, "Light");   //LCD 相关提示;

    halLcdWriteLine(HAL_LCD_LINE_2, "Ready");

   

#ifdef ASSY_EXP4618_CC2420

    halLcdClearLine(1);

    halLcdWriteSymbol(HAL_LCD_SYMBOL_RX, 1);

#endif

 

// Initialize BasicRF

//BasicRF初始化,参看上篇;

    basicRfConfig.myAddr = LIGHT_ADDR;

    if(basicRfInit(&basicRfConfig)==FAILED) {

      HAL_ASSERT(FALSE);

    }

    basicRfReceiveOn(); //再次将txState.receiveOn设置为TRUE,并进入接收状态;

 

// Main loop

//主循环,一旦有接收数据,则进行处理;

//对于灯开关例程中 无复杂操作的主循环的内容,即:青色加粗部分 简单修改后完全可以写至RF中断服务子程序中来完成;

//对于复杂的操作,RF中断优先级比较高,可以通过标志位把 不重要的部分 分离出中断服务子程序,以响应其他中断;

    while (TRUE) {

        while(!basicRfPacketIsReady());  //接收中断完成则跳出轮询,进行后续的数据处理等操作; 

        //将接收的数据写入pRsData

//若接收数据命令正确则LED灯状态切换一次;

        if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) {

            if(pRxData[0] == LIGHT_TOGGLE_CMD) {

                halLedToggle(1);

            }

        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值