cc2531USB dongle 实现MT模式 数据转发 串口
2013-11-29 21:35
155 查看
由于项目需求要实现CC2531USB dongle的MT模式来实现dongle的数据转发功能,框架简图1所示。PC端实现了MT模式,也可以用Ztool。总结起来就是dongle在MT模式下接收串口数据(数据满足MT格式),然后将数据解析为具体方法,接收到node端发送的数据后将数据处理(封装成MT格式)再传给串口进而传给PC。
图1
好了,不多说了直接讲步骤。
环境:
操作系统:window xp
Zstack版本:2.5.0
IAR版本:8.11
1.下载基于GenericApp已经移植好USB驱动的工程文件GenericApp-CC2531.zip,下载链接。
2.把解压后的文件夹拷贝..\TexasInstruments\ZStack-CC2530-2.5.0\Projects\zstack\Samples\GenericApp文件夹下,使用IAR打开工程。
3.在MT文件夹下找到MT_UART.c,然后找到MT_UartProcessZToolData函数:
/* Make sure it's correct */
if ((MT_UartCalcFCS ((uint8*)&pMsg->msg[0], MT_RPC_FRAME_HDR_SZ +LEN_Token) == FSC_Token))
{
//把osal_msg_send( App_TaskID, (byte *)pMsg );这句话注释掉添加//MT_AfCommandProcessing(pMsg->msg);别忘了添加MT_AF.h文件
//关于这个函数可以参见《如何在Zstack中使用串口.pdf》
//osal_msg_send( App_TaskID, (byte *)pMsg );
MT_AfCommandProcessing(pMsg->msg);
}
else
{
/* deallocate the msg */
osal_msg_deallocate ( (uint8 *)pMsg );
}
4.在第三部中相当于已经解决了从pc发到串口然后再由MT处理的过程,接下来就是要解决收到node的数据后如何返回给串口。打开GenericApp.c找到GenericApp_MessageMSGCB函数将其改为:
void GenericApp_MessageMSGCB(afIncomingMSGPacket_t *pkt )
{
MT_AfIncomingMsg(pkt);
}
别忘了添加#include"MT_AF.h"哈。
最好把GenericApp.c中的其他东西删除了,一方面看着简单,另一方面GenericApp.c里面还有一个定时发送功能。
5.然后就是编译下载了。
注意:
一定别忘了编译时的选项添加一个MT_UTIL_FUNC,在project->options->c/c++compiler->preprocess
图1
好了,不多说了直接讲步骤。
环境:
操作系统:window xp
Zstack版本:2.5.0
IAR版本:8.11
1.下载基于GenericApp已经移植好USB驱动的工程文件GenericApp-CC2531.zip,下载链接。
2.把解压后的文件夹拷贝..\TexasInstruments\ZStack-CC2530-2.5.0\Projects\zstack\Samples\GenericApp文件夹下,使用IAR打开工程。
3.在MT文件夹下找到MT_UART.c,然后找到MT_UartProcessZToolData函数:
/* Make sure it's correct */
if ((MT_UartCalcFCS ((uint8*)&pMsg->msg[0], MT_RPC_FRAME_HDR_SZ +LEN_Token) == FSC_Token))
{
//把osal_msg_send( App_TaskID, (byte *)pMsg );这句话注释掉添加//MT_AfCommandProcessing(pMsg->msg);别忘了添加MT_AF.h文件
//关于这个函数可以参见《如何在Zstack中使用串口.pdf》
//osal_msg_send( App_TaskID, (byte *)pMsg );
MT_AfCommandProcessing(pMsg->msg);
}
else
{
/* deallocate the msg */
osal_msg_deallocate ( (uint8 *)pMsg );
}
4.在第三部中相当于已经解决了从pc发到串口然后再由MT处理的过程,接下来就是要解决收到node的数据后如何返回给串口。打开GenericApp.c找到GenericApp_MessageMSGCB函数将其改为:
void GenericApp_MessageMSGCB(afIncomingMSGPacket_t *pkt )
{
MT_AfIncomingMsg(pkt);
}
别忘了添加#include"MT_AF.h"哈。
最好把GenericApp.c中的其他东西删除了,一方面看着简单,另一方面GenericApp.c里面还有一个定时发送功能。
5.然后就是编译下载了。
注意:
一定别忘了编译时的选项添加一个MT_UTIL_FUNC,在project->options->c/c++compiler->preprocess
相关文章推荐
- windows下,C++实现串口编程,串间口转发数据
- windows下,C++实现串口编程,串间口转发数据
- 控制台下WinApi同步方式实现的串口发送数据
- MVC4 + SignalR2.20 + WCF双工观察者模式,B/S实现服务端数据直推浏览器端
- 51单片机中用中断方式实现串口数据发送与接收
- VMware虚拟机偶尔无法实现拖曳功能的解决办法以及Vmware虚拟机NAT连接模式进行端口转发
- C#实现把指定数据写入串口
- 通过串口编程实现GPRS模块在网络上传输数据
- 稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询
- c++11 单例模式可变参数实现完美转发
- 【Nginx】均衡负载权重模式实现session数据同步
- 异步串口模式发送和接收数据
- RoboBinding:一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架
- 使用android设备管理员模式 实现强制锁屏 清除数据等
- 数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现
- Xutils3.0请求数据, 省流量模式实现,下载安装,sdcard存储(所有类)
- c++实现的观察者模式 数据和处理方式(百分比、柱状图。。。)
- 稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询
- Golang实现web api接口调用及web数据抓取[get post模式] 推荐
- 通过观察者模式监听媒体库的变化实现APP本地数据自动更新