热度 18
2014-12-17 23:39
1174 次阅读|
2 个评论
从昨天折腾到今天,终于将WSNDemo测试成功。 从ASF中创建例程的步骤就不重复了。创建好LWMesh-WSNDemo-Application例程后,我们可以在项目管理器中看到还带有pdf应用笔记和WSNmonitor监视软件。AS6将这么多东西都打包进去了,难怪速度比较慢。 在config.h中,我们可以看到下面的定义 #if APP_ADDR == 0x0000 #define APP_CAPTION "Coordinator" #define APP_NODE_TYPE 0 #define APP_COORDINATOR 1 #define APP_ROUTER 0 #define APP_ENDDEVICE 0 #elif APP_ADDR 0x8000 #define APP_CAPTION "Router" #define APP_NODE_TYPE 1 #define APP_COORDINATOR 0 #define APP_ROUTER 1 #define APP_ENDDEVICE 0 #else #define APP_CAPTION "End Device" #define APP_NODE_TYPE 2 #define APP_COORDINATOR 0 #define APP_ROUTER 0 #define APP_ENDDEVICE 1 #endif APP_ADDR是0,就是Coordinator,小于0x8000是Router,否则才是End Device。因为只有两个SAM R21,所以只能一个设置成End Device,另一个设置为Coordinator。分别设置APP_ADDR为0和大于0x8000(这里设置为0x9012了),编译并分别下载到两个SAM R21中。下载后立刻就可以看到,随着End Device每两秒发一次数据(LED闪一次),Coordinator上的LED也同步闪一次,说明它们的之间无线通信已经连上。 再安装WSNMonitor,这是一个Java程序。 使用这个软件前,需要进行参数设置。这里很关键,我就是在这里卡了一天才发现问题。点击File菜单下的Connect或者直接点工具栏上的第一个按钮,就进行参数设置。 首先要指定Protocol目录,我们需要将它指定到WsnMonitor软件下的protocol目录。如果我们通过编辑栏右边的按钮去指定,会遇到一个坑,它会自动在目录名的最后添加.null,需要手工将它删除才行。 然后在选择串口和设置串口参数。波特率要设置为38400,因为单片机是这样设置的。此外流控也必须设置,这是第二个坑,选择xon/xoff或者hardware都可以,就是不能选择none。 选择好后点击ok就开始联机了。如果没有错误,就可以看到下面的画面。如果没有看到,就说明你的设置错了,请在检查一下。 当然我们也可以用其它串口软件,用HEX方式截取数据。可以看到数据包中 12 90 就是刚才设置的End device地址。