基于printf库的打印调试

在运行这个自带例子的时候,不知道大家是否遇到过没有打印结果没有的情况。

Thread[Thread-1,5,main]serial@/dev/ttyUSB0:115200: resynchronising
也就是上面这句话之后没有任何结果了。

#include "printf.h"
module TestPrintfC {
  uses {
    interface Boot;
  }
}
implementation {
    
  uint8_t dummyVar1 = 123;
  uint16_t dummyVar2 = 12345;
  uint32_t dummyVar3 = 1234567890;

  event void Boot.booted() {
      printf("Hi I am writing to you from my TinyOS application!!\n");
      printf("Here is a uint8: %u\n", dummyVar1);
      printf("Here is a uint16: %u\n", dummyVar2);
      printf("Here is a uint32: %ld\n", dummyVar3);
      printfflush();
  }

}

以上是源码中给的例子。

大家发现没有,所有打印的东西都是上电启动后打印一次就结束了。等你观察时候早就结束了,自然没有结果。

所以我改动了这个程序。

#include "printf.h"

configuration TestPrintfAppC{
}
implementation {
  components MainC, TestPrintfC, LedsC;
  components new TimerMilliC() as Timer0;

  TestPrintfC.Boot -> MainC;

  TestPrintfC.Timer0 -> Timer0;
  TestPrintfC.Leds ->LedsC;
}

以上是TestPrintfAppC的内容

#include "Timer.h" 
#include "printf.h"
module TestPrintfC {
  uses {
    interface Boot;
    interface Timer<TMilli> as Timer0;
    interface Leds;
  }
}
implementation {
    
  uint8_t dummyVar1 = 123;
  uint16_t dummyVar2 = 12345;
  uint32_t dummyVar3 = 1234567890;
    
void pprin(){
    printf("Hi I am writing to you from my TinyOS application!!\n");
      printf("Here is a uint8: %u\n", dummyVar1);
      printf("Here is a uint16: %u\n", dummyVar2);
      printf("Here is a uint32: %ld\n", dummyVar3);
      printfflush();
  }
  event void Boot.booted() {
    call Timer0.startPeriodic(1000);
      printf("Hi I am writing to you from my TinyOS application!!\n");
      printf("Here is a uint8: %u\n", dummyVar1);
      printf("Here is a uint16: %u\n", dummyVar2);
      printf("Here is a uint32: %ld\n", dummyVar3);
      printfflush();
  }
  event void Timer0.fired(){
       pprin();
       call Leds.led0Toggle();
  }
      
}

以上是TestPrintfC的内容。让第一个灯每隔1秒闪烁一次,并且打印一次内容。

然后输入

make telosb install  (注:笔者的是telosb节点)

然后输入

java net.tinyos.tools.PrintfClient -comm serial@/dev/ttyUSB0:telosb

结果出现,结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值