serial_line_event_message不起作用(contiki,zolertia z1)

时间:2017-04-10 18:04:25

标签: serial-port contiki

HY, 我已经阅读了几篇关于如何设法在我的zolertia z1的UART0(rx)端口上接收数据的帖子,但我无法使其工作。我的代码:

#include "contiki.h"
#include <stdio.h>/* For printf()*/
#include "dev/leds.h"
#include "dev/serial-line.h"
#define PERIOD (CLOCK_SECOND*10)  

//-----------------------------------------------------------------

PROCESS(simple_uart, "read and write");
AUTOSTART_PROCESSES(&simple_uart);
static struct etimer et; // Define the timer
//-----------------------------------------------------------------
PROCESS_THREAD(simple_uart, ev, data)
{
  PROCESS_BEGIN();
  static struct etimer et;
  uart0_init(BAUD2UBR(57600));
    etimer_set(&et,PERIOD);
    {
          while(1)
          { 
            PROCESS_WAIT_EVENT();
            if(ev ==serial_line_event_message)
            {
            leds_toggle(LEDS_RED);
            }       
            if(etimer_expired(&et))
            {
            printf("sys get ver\r\n");
            leds_toggle(LEDS_GREEN);
            etimer_reset(&et);
            }
          }
    }
  PROCESS_END();
}

写入部分正在工作,但读取部分没有。直接调用serial_line_event_message。 我评论了contiki-z1-main文件中的那些行:

//#if !NETSTACK_CONF_WITH_IPV4 && !NETSTACK_CONF_WITH_IPV6
  uart0_set_input(serial_line_input_byte);
  serial_line_init();
//#endif

有谁知道我的错误在哪里?谢谢!

1 个答案:

答案 0 :(得分:0)

问题解决了(编程时我在main中做了一些更改)。为了使这段代码有效,我只需用原始版本替换主文件。