找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11232|回复: 12
收起左侧

好用的轻量级单片机操作系统cocox CoOS STM32平台强烈推荐

  [复制链接]
ID:202417 发表于 2017-5-19 10:21 | 显示全部楼层 |阅读模式
最近在做stm32单片机的时候,想让单片机跑一种轻量级操作系统于是找到CoOS,内核只有974个字节,分享给大家。但是教程是英文哦,英语不好的建议用金山词霸的画译功能辅助阅读。带上一个LED使用例子。
0.png

单片机源程序如下:
  1. #include <CoOS.h>
  2. #include "stm32f10x.h"

  3. OS_STK taskA_stk[128];  //建立一个任务栈A
  4. OS_STK taskB_stk[128];  //建立一个任务栈B

  5. void LED_GPIO_Init(void)
  6. {
  7.         
  8.         GPIO_InitTypeDef Weiqi_GPIO_InitStru;
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);
  10.         
  11.         Weiqi_GPIO_InitStru.GPIO_Pin = GPIO_Pin_5;
  12.         Weiqi_GPIO_InitStru.GPIO_Speed = GPIO_Speed_50MHz;
  13.         Weiqi_GPIO_InitStru.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  14.         GPIO_Init(GPIOB,&Weiqi_GPIO_InitStru);
  15.         
  16.         Weiqi_GPIO_InitStru.GPIO_Pin = GPIO_Pin_5;
  17.         Weiqi_GPIO_InitStru.GPIO_Speed = GPIO_Speed_50MHz;
  18.         Weiqi_GPIO_InitStru.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  19.         GPIO_Init(GPIOE,&Weiqi_GPIO_InitStru);
  20.         
  21.   GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  22.   GPIO_ResetBits(GPIOE,GPIO_Pin_5);
  23.         
  24. }


  25. void TaskA(void* pdata)
  26. {
  27.         for(;;)
  28.         {
  29.                 GPIO_SetBits(GPIOB,GPIO_Pin_5);
  30.                 CoTickDelay(10);  //延时N个系统节拍 任务进入等待态(TASK_WAITING) 延时是10*100ms 等于1S 就是一秒钟一次?
  31.                 GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  32.                 CoTickDelay(10);  //延时N个系统节拍 任务进入等待态(TASK_WAITING) 延时是10*100ms 等于1S 就是一秒钟一次?
  33.         }
  34. }

  35. void TaskB(void* pdata)
  36. {
  37.         for(;;)
  38.         {
  39.                 GPIO_SetBits(GPIOE,GPIO_Pin_5);
  40.                 CoTickDelay(5);  //延时N个系统节拍 任务进入等待态(TASK_WAITING)  延时是5*100ms 等于500 m?
  41.                 GPIO_ResetBits(GPIOE,GPIO_Pin_5);
  42.                 CoTickDelay(5);  //延时N个系统节拍 任务进入等待态(TASK_WAITING) 延时是5*100ms 等于500 m?
  43.         }
  44. }

  45. int main(void)
  46. {

  47.         CoInitOS (); //操作系统初始化
  48.         
  49.         LED_GPIO_Init();
  50.         
  51. /*
  52.                  [IN1]创建任务的函数体
  53.                  [IN2]任务函数体的传入参数列表
  54.                  [IN3]任务优先级
  55.                  [IN4]任务栈起始地址
  56.                  [IN5]任务堆大小
  57. ……………………

  58. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
源码: Coos-LED.zip (345.94 KB, 下载次数: 153)
回复

使用道具 举报

ID:169559 发表于 2017-5-20 12:28 | 显示全部楼层
不错,值得学习一下!
回复

使用道具 举报

ID:212401 发表于 2017-6-18 23:04 | 显示全部楼层
好资料,认真学习下
回复

使用道具 举报

ID:267839 发表于 2018-4-25 15:47 | 显示全部楼层
已经下载了,学习
回复

使用道具 举报

ID:524782 发表于 2019-4-29 21:32 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:545040 发表于 2019-5-22 20:31 | 显示全部楼层
好资料,认真学习下
回复

使用道具 举报

ID:20672 发表于 2019-9-11 22:03 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:496651 发表于 2019-12-31 22:20 来自手机 | 显示全部楼层
好资料! 谢谢分享
回复

使用道具 举报

ID:295789 发表于 2020-3-3 12:53 | 显示全部楼层
怎么很少人使用coOS?
回复

使用道具 举报

ID:70490 发表于 2020-6-4 21:38 | 显示全部楼层
正在学习STM32,下载学习下
回复

使用道具 举报

ID:489990 发表于 2020-6-25 10:26 | 显示全部楼层
先学习一下
回复

使用道具 举报

ID:431838 发表于 2021-1-31 09:48 | 显示全部楼层
好资料,认真学习下;谢谢分享!
回复

使用道具 举报

ID:716103 发表于 2021-1-31 11:05 | 显示全部楼层
cocox已经消亡了,不要再花时间在上面了(只是为了学习,不是应用的除外)。可以去看看freeRtos或者是RT-Thread,这两个比较有生命力。RT-Thread是国产RTOS,并且免费开源。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表