2017年10月22日 星期日

[Contiki] CC1310 SimpleLink / CC2650 UART、LED 使用範例

最近在玩Contiki OS,用的是CC1350的板子,每次有問題都是靠一位很強大的大大協助指點,或是爬爬大部分都是英文的資料,想說乾脆之後做過的東西都打起來,當個備忘,也給想看的人。

CC13xx/CC26xx 的Sample code 基本上都通用,編譯的時候用 make TARGET=srf06-cc26xx BOARD=launchpad/cc1350 [app-name] 就OK了,1350那邊改成你自己的板子

先從UART 跟 LED開始講起吧,雖然很基本,但是我很蠢的搞了很久XD。

[是從官方的examples改出來的]
#include "contiki.h"
#include "dev/cc26xx-uart.h"
#include "dev/serial-line.h"
#include "dev/leds.h"
#include <stdio.h>
#include <string.h>

PROCESS(test_serial_led, "Serial line and led test process");
AUTOSTART_PROCESSES(&test_serial_led);

PROCESS_THREAD(test_serial_led, ev, data) 
{
    PROCESS_BEGIN();
    cc26xx_uart_set_input(serial_line_input_byte); //反正要偵聽terminal輸入就是用他就對了,管他26xx還是13xx,都通用的
    printf("Hello, world.\n");

    while(1) 
    {
        PROCESS_YIELD();
        if (ev == serial_line_event_message) //監聽到的事件等於serial line輸入( terminal打字 + [Alt-Enter] )
        {
            printf("Received String = %s\n", (char * ) data);
            if (strcmp(data, "ON") == 0) leds_on(LEDS_GREEN); //如果收到字串是"ON"就開綠燈
            else if (strcmp(data, "OFF") == 0) leds_off(LEDS_GREEN); //如果收到字串是"OFF"就關燈
        }
    }
    PROCESS_END();
}

1 則留言: