Zigbee 1.4.3 高层串口接收数据

    技术2022-05-20  72

    无线龙提供的材料很差劲,而且1.4.1给的文档到了1.4.2就不给了,更可气的是TI的Zigbee协议栈明明有安装包,就是不给,非要给个拆开了的,不用他们的开发板,自己做板子的话,麻烦死你。不清楚什么用意。怀疑是想搞技术垄断,但问题是就这点技术,你垄断谁去,中国人窝里斗的典范。严重声讨一下!

     

    这里专门讨论一下UART串口通讯部分,在网络上看了不少方法,基本上是直接操作HAL,其实不必的,发送操作HAL就算了,接收部分可以用SPIMgr来实现。

     

    1. 把预定义宏MT_TASK和ZTOOL_P1去掉, 添加上ZAPP_P1,或者ZAPP_P2也行,看你用哪个口

    在相关文件中引用SPIMgr.h

     

    2. 在应用层MYAPP_INIT或者SAPI_Init函数中添加:

      SPIMgr_RegisterTaskID( myApp_TaskID );  SPIMgr_ZAppRxStatus   = SPI_MGR_ZAPP_RX_READY;

    告诉SPIMgr收到串口消息后通知应用层

     

    3. 在MYAPP_ProcessEvent中(或者SAPI_ProcessEvent)处理系统消息那一段加上对事件SPI_INCOMING_ZAPP_DATA的处理动作

      case SPI_INCOMING_ZAPP_DATA:

          myCode_ProcessIncomingSerialPortData( pMsg );

          break;

     

    4. 在合适的myApp.h(或者sapi.h)中声明函数

      extern void myCode_ProcessIncomingSerialPortData( osal_event_hdr_t * );

     

    5. 在合适的地方实现这个动作

    void myCode_ProcessIncomingSerialPortData( osal_event_hdr_t * pMsg )

    {

        // TODO 在此处理串口数据    // pMsg->status 存储的是数据长度    // (uint8 *)(pMsg+1) 存储的是数据

    }

     

    这就行了, 起始真正有用的就是1, 2, 3, 剩下的完全可以根据个人喜好去弄。

     


    最新回复(0)