首页 > 其他分享 >CH58x/CH59x/CH57x RF_PHY(2.4g)切换Channel发送接收

CH58x/CH59x/CH57x RF_PHY(2.4g)切换Channel发送接收

时间:2024-09-09 19:25:00浏览次数:1  
标签:CH57x Tx tx channl CH59x PHY RF 0xFF evt

前言:在做某些应用的时候可能需要我们发送或者接收时切换对应的channel。

此次完成测试的平台在WCH的CH592F上完成的。

在工作发送过程中切换37、38、39三个信道进行轮询发送。具体需要使用最关键的函数是:RF_SetChannel

实现代码如下:

    if(events & channl_37_tx_evt)
      {
          RF_Shut();
          RF_SetChannel(37);
          tx_end_flag = FALSE;
          if(!RF_Tx(TX_DATA, 10, 0xFF, 0xFF))
          {
              RF_Wait_Tx_End();
          }

          return events ^ channl_37_tx_evt;
      }
      if(events & channl_38_tx_evt)
      {
          RF_Shut();
          RF_SetChannel(38);
          tx_end_flag = FALSE;
          if(!RF_Tx(TX_DATA, 10, 0xFF, 0xFF))
          {
              RF_Wait_Tx_End();
          }

          return events ^ channl_38_tx_evt;
      }
      if(events & channl_39_tx_evt)
      {
          RF_Shut();
          RF_SetChannel(39);
          tx_end_flag = FALSE;
          if(!RF_Tx(TX_DATA, 10, 0xFF, 0xFF))
          {
              RF_Wait_Tx_End();
          }

          return events ^ channl_39_tx_evt;
      }


    if(events & SBP_RF_PERIODIC_EVT)
    {
//        RF_Shut();
//        tx_end_flag = FALSE;
//        if(!RF_Tx(TX_DATA, 10, 0xFF, 0xFF))
//        {
//            RF_Wait_Tx_End();
//        }
                tmos_set_event(taskID, channl_37_tx_evt);
                tmos_set_event(taskID, channl_38_tx_evt);
                tmos_set_event(taskID, channl_39_tx_evt);
        tmos_start_task(taskID, SBP_RF_PERIODIC_EVT, 500);
        return events ^ SBP_RF_PERIODIC_EVT;
    }

现象:

 

 

 

标签:CH57x,Tx,tx,channl,CH59x,PHY,RF,0xFF,evt
From: https://www.cnblogs.com/frontier/p/18405123

相关文章

  • A.Philosophy.of.Software.Design.
    《软件设计的哲学》是一本深入探讨软件设计复杂性的书籍,作者JohnOusterhout通过自身的经验和研究,提出了一系列设计原则和方法,旨在帮助开发者创建更简单、更易于维护的软件系统。软件设计的核心问题:软件设计面临的主要挑战是复杂性,包括依赖性和模糊性。依赖性导致代码......
  • 洛谷 P3034 Cow Photography G/S——题解
    洛谷P3034题解传送锚点摸鱼环节[USACO11DEC]CowPhotographyG/S题面翻译题目描述今天的奶牛们特别调皮!FarmerJohn想做的只是给排成一排的奶牛拍照,但是在他拍下照片之前,奶牛们一直在移动。具体地说,FJ有\(N\)头奶牛(\(1\leqN\leq20\,000\)),每头奶牛都有一个唯一确......
  • SciTech-Mathmatics-Physics-Particle+Movement-Election-The Maxwell Equations-Wave
    TheMaxwellEquations:电、磁、光StaticElectricFieldStaticMagneticFieldChangingElectricFieldChangingMagneticField......
  • SciTech-Mathmatics-Physics-Particle Physics-Election-The Maxwell Equations-Wave-
    TheMaxwellEquations:Election,Substances,Particle'sBrownMovementsAZD(AbsoluteZeroDegree):EachkindofparticlehasitswavewhenaboveAZD.TheMaxwellEquations:\(\large\begin{array}{llll}\\(\i\)&\bm{\nabla}\cd......
  • Lecture 10 & 11 Real-time Physically-based Materials (surface model)
    Lecture10Real-timePhysically-basedMaterials(surfacemodelsandcont.)PBRandPBRMaterialsPhysically-BasedRendering(PBR)基于物理的渲染渲染内的任何事都应该是PBR的材质、光照、相机、光线传播等等不限于材质,但常常指材质PBRmaterialsinRTR......
  • RK3568调试YT8531单网口千兆以太网PHY芯片,GAMC调试
    异常现象当硬件上使用YT8531替代Realtek瑞昱的RTL8211之后,出现系统能够正确识别ETHx,也能设置IP地址,但是外部无法ping成功或者重启后IP地址还会丢失的问题;硬件排查思路检查电源:输入3.3v;输出1.1v,RGMII的电平配置是否如设计预期(1.8v/2.5v/3.3v),尤其RGMII电平配置为3.3......
  • 从 FreeRTOS 到 Zephyr
    从FreeRTOS到Zephyr前言什么是RTOS?RTOS到底有什么?为什么要用RTOS?FreeRTOSframework调度器任务现场任务切换运行时机调度算法任务/线程任务组成任务优先级任务栈线程安全通信机制数据的同步机制:信号量资源的保护机制:互斥量多任务同步机制:事件标志任务或中断间的数......
  • cryptography,是一个强大的 Python 库
    cryptography是一个强大的Python库,提供了加密、解密、签名、验证等一系列安全功能,帮助开发者轻松实现数据安全。该库适用于各种加密需求,从简单的数据加密到复杂的网络安全通信。cryptography的功能特性安全性:提供多种加密算法,确保数据安全。灵活性:支持多种加密协议和标......
  • 飞腾D2000网卡经裕太PHY后出光网调试指导
    1、背景介绍飞腾D2000网卡经裕太8521后转光模块输出,示意框图如下2、硬件配置裕太8521模式需要配置为RGMII转UTP/Fiber,寄存器中0xa001说明如下,寄存器最后三位读出来是0103、软件配置1)设备树配置linux下对D2000网卡的设备树描述如下,注意要去除网卡节点下面的mdio相关......
  • COMSOL Multiphysics软件二次开发:COMSOL软件在流体力学中的应用
    COMSOLMultiphysics软件二次开发:COMSOL软件在流体力学中的应用COMSOLMultiphysics概述COMSOLMultiphysics是一款强大的多物理场仿真软件,它允许用户通过图形用户界面(GUI)或通过二次开发接口(即COMSOLAPI)来建立和求解复杂的物理模型。COMSOL软件的核心优势在于其能够......