我是靠谱客的博主 健康煎蛋,最近开发中收集的这篇文章主要介绍STM8L151C8单片机学习例程(15)——Contiki_OS_LED,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

​STM8L_15_Contiki_OS_LED:
1.Contiki:Contiki OS所需文件
2.User:工程及main文件
3.Hardware:LED,CLK,Wag
4.STM8L15x_StdPeriph_Driver:STM8自带库文件
5.Debug:hex文件存放于EXE文件夹
6.readme: 使用Contiki OS 进行LED闪烁

 

 

Contiki OS仅需2KB RAM和40KB ROM,是开源的、高可移植的、支持网络的多任务操作系统,包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈,很适合LoRa、NB-IoT等无线传感器网络。

这里用仅仅Contiki实现LED闪烁。

 

/*********************************************************************************   @file      main.c*   @author    Alex——小白*   @version   V1.0*   @date      2019.5.1*   @brief     LED Blink By Contiki OS*   @store     有家Proteus仿真店子*   @Link      https://shop484534014.taobao.com/*   @Email     844545015@qq.com*******************************************************************************   @attention  All Rights Reserved  **/#include <string.h>#include <stdio.h>#include "contiki.h"#include "etimer.h"#include "stm8l15x.h"#include "LED.h"#include "CLK.h"PROCESS(blink_process,"Blink");             //申请一个进程AUTOSTART_PROCESSES(&blink_process,);            PROCESS_THREAD(blink_process,ev,data)       //LED0 Blink/s 函数,是进程的方法{    PROCESS_BEGIN();                        //进程开始    while(1)                                //一个进程就是一个死循环    {        static struct etimer et;            //申请一个etimer结构体,切勿去掉static            etimer_set(&et,CLOCK_SECOND);        PROCESS_YIELD();                //进程自我阻塞,当外部消息(此处为定时器中断)刺激才触发        if(PROCESS_EVENT_TIMER == ev)   //判断消息是否etimer的1s超时        {            LED1_Toggle();            LED0_Toggle();            etimer_restart(&et);        //重启et,为下1s定时        }            }    PROCESS_END();                          //进程结束}void main(void){        /* Initialize hardware */    CLK_HSI_Config(CLK_SYSCLKDiv_1);        //CLK init    LED_Init();                             //LED init    clock_init();                           //Systerm Tick    /* EXPLAIN: enable INT before initialize process! */    enableInterrupts();        /* Initialize contiki system */      process_init();    process_start(&etimer_process, NULL);     autostart_start(autostart_processes);      while (1)  {        while (process_run() > 0)        {            ;        }  }}

如需下载Proteus仿真文件和Keil工程,请关注公众号:

Proteus仿真店子

(若IAR IDE编译器以及驱动,后台回复:IAR;若STM8L相关参考文档,后台回复:STM8L手册;若需其它设计,后台回复:STM8L设计

最后

以上就是健康煎蛋为你收集整理的STM8L151C8单片机学习例程(15)——Contiki_OS_LED的全部内容,希望文章能够帮你解决STM8L151C8单片机学习例程(15)——Contiki_OS_LED所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部