无线龙提供的材料很差劲,而且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, 剩下的完全可以根据个人喜好去弄。