例程以con tiki sensinode分支为主,该分支和Contiki主分支存在差异,主要解决CC2530 UDP例程重启问题。
【调试工具使用】 由于linux中换行以n结尾,而windows以rn结尾,在windows中调试例程需要修改串口调试工具中的设置,例如putty中。 【n变为rn】——修改设置见下图。 图1 回车换行设置 【putty打开串口】——输入串口编号COM7,输入波特率115200,点击open。 图2 打开指定串口 【下载hex文件】 从Instant Contiki(Vmware虚拟机)中复制hex文件到windwos中某目录,然后使用smartRF Flash Programmmer。操作步骤如下。 图3 下载Flash 1.UDP例程 本博文一反常态从较为复杂的例子开始,先尝试UDP IPv6例子。 【说明】 【操作】——cd指令进入例程目录。server操作和client操作相似。 cd contiki-sensinode-cc-ports/examples/cc2530dk/udp-ipv6/
make server 图4 cd和make操作 图5 输出结果 【运行结果】——稳定运行之后,server和client开发板 红色LED几乎同时闪烁。前几个UDP数据包会发生数据包丢失的情况,问题原因尚未找到。 图6 server串口输出结果 图7 client输出结果 2.hello world例程 【说明】 Contiki最简单的例子,通过串口输出Hello world!。 【操作】 cd contiki-sensinode-cc-ports/examples/cc2530dk/ make hello-world 图8 hello-world例程 3.blink-hello例程 【说明】建立两个任务,两任务同时通过串口打印数据。测试Contiki的定时器和阻塞API。 【操作】 cd contiki-sensinode-cc-ports/examples/cc2530dk/ make blink-hello 【运行结果】 图9 blink-hello例程 4.timer-test例程 【说明】测试Contiki的多种定时器,包括etimer和rtimer。 【操作】 cd contiki-sensinode-cc-ports/examples/cc2530dk/ make timer-test 【运行结果】 图10 timer-test例程 5.sensor-demo例程 【说明】 通过CC2530的片内AD转换通道获得芯片内部温度,通过按下BUTTON按钮捕获外部中断。 由于开发板存在差异,需要修改platform/cc2530dk/dev目录下的button-sensor.c文件,BUTTON1由P0_1变为P0_5,修改内容见红色字样 #if MODEL_CC2531 #define BUTTON1_PORT 1 #define BUTTON1_PIN 2 #define BUTTON2_PORT 1 #define BUTTON2_PIN 3 #else #define BUTTON1_PORT 0 #define BUTTON1_PIN 5 /* P0_1 change to P0_5*/ #endif 【操作】 cd contiki-sensinode-cc-ports/examples/cc2530dk/ make sensor-demo 【运行结果】 图11 sensor-demo例程
|