HOME> 东京世界杯> 浅谈对ucosii的应用

浅谈对ucosii的应用

东京世界杯 2025-07-19 22:29:39
[STM32F1] 浅谈对ucosii的应用 [复制链接] 2437|12 手机看帖扫描二维码随时随地手机跟帖 ywlzh 当前离线 关注TA 发消息 15 主题279 帖子873 积分 高级技术...

[STM32F1]

浅谈对ucosii的应用

[复制链接]

2437|12

手机看帖扫描二维码随时随地手机跟帖

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

电梯直达

楼主

ywlzh|

楼主

|

2016-1-22 13:32

|

只看该作者

|倒序浏览

|阅读模式

ucosii, 移植, 模板, 快速入门, ucosiiv

本帖最后由 ywlzh 于 2016-1-22 14:04 编辑

本人用的是ucosiiV2.91,工程自己建的,ucosii是照搬网上原子哥的,反正他写好了,看的懂就可以用,在这里也建议哪些想要快速入门ucosii的朋友,你们就先弄懂ucosii,先别管移植的问题,不要操心自己怎么移植,用别人的工程,然后写出适合自己的东西,先给出自己整个工程模板,想用的朋友可以直接用!

ucosii.part01.rar

2016-1-22 14:03 上传

点击文件名下载附件

5 MB

ucosii.part02.rar

2016-1-22 14:03 上传

点击文件名下载附件

5 MB

ucosii.part03.rar

2016-1-22 14:03 上传

点击文件名下载附件

3.36 MB

使用特权

评论回复

标题置顶

标题高亮

点赞共0人点赞

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

沙发

ywlzh|

楼主

|

2016-1-22 13:39

|

只看该作者

发这个的意思就是告诉大家,先不要太死磕程序是怎么走的,我们先知道我们要怎么使用,先看这本书,任哲先生的,对入门有极大的帮助

嵌入式实时操作系统μCOS-II原理及应用(第2版).part01.rar

2016-1-22 13:36 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part02.rar

2016-1-22 13:37 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part03.rar

2016-1-22 13:37 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part04.rar

2016-1-22 13:37 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part05.rar

2016-1-22 13:37 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part06.rar

2016-1-22 13:37 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part07.rar

2016-1-22 13:38 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part08.rar

2016-1-22 13:38 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part09.rar

2016-1-22 13:38 上传

点击文件名下载附件

5 MB

嵌入式实时操作系统μCOS-II原理及应用(第2版).part10.rar

2016-1-22 13:38 上传

点击文件名下载附件

4.24 MB

使用特权

评论回复

点赞共0人点赞

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

板凳

ywlzh|

楼主

|

2016-1-22 14:12

|

只看该作者

本帖最后由 ywlzh 于 2016-1-22 14:14 编辑

现在说说怎么使用这个工程,这个工程面对的是stm32f1系列的单片机。

进入主函数之后最开始还是对时钟做处理,我选择的是外部时钟,8M的晶振,如果你们用的是其他的晶振可以在

if(RCC_WaitForHSEStartUp() == SUCCESS)

{

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

FLASH_SetLatency(FLASH_Latency_2);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

RCC_PLLCmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while(RCC_GetSYSCLKSource() != 0x08);

}

中的 RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); 做处理,这句话的意思就是将外部的8M的晶振先不分频,然后9倍频,到了72M了,

接着做各个外设的初始,

做完初始化了之后就开始进入ucosiil

OSInit();

OSTaskCreate(start_task,

(void *)0,

(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],

START_TASK_PRIO );

OSStart();

至于怎么创建任务,任务怎么通信,任务怎么调度,这些个问题,我想只要你开始用ucosii做项目,你就回慢慢明白的!不要一次性贪大,一步一步的来。先看入门的书,然后对单片机开始操作,你会发现,原来这么简单!

使用特权

评论回复

点赞共0人点赞

夜色风满楼

当前离线

关注TA

发消息

1

主题234

帖子730

积分

高级技术员

高级技术员, 积分 730, 距离下一级还需 270 积分

高级技术员, 积分 730, 距离下一级还需 270 积分

积分730

在线时间243 小时

精华0

注册时间2014-10-24

最后登录2019-2-23

打赏5.00受赏17.00

地板

夜色风满楼|

|

2016-1-27 23:06

|

只看该作者

楼主有没有hal库移植ucos的工程呢 搞了两天了 一直不能成功

使用特权

评论回复

点赞共0人点赞

ccw1986

当前离线

关注TA

发消息

84

主题925

帖子2822

积分

初级工程师

初级工程师, 积分 2822, 距离下一级还需 178 积分

初级工程师, 积分 2822, 距离下一级还需 178 积分

积分2822

在线时间42 小时

精华0

注册时间2015-1-27

最后登录2016-7-11

5楼

ccw1986|

|

2016-1-28 20:49

|

只看该作者

开始觉得ucos ii很简单,现在觉得越学不会的越多

使用特权

评论回复

点赞共0人点赞

ofsummer

当前离线

关注TA

发消息

10

主题71

帖子213

积分

中级技术员

中级技术员, 积分 213, 距离下一级还需 87 积分

中级技术员, 积分 213, 距离下一级还需 87 积分

积分213

在线时间2 小时

精华0

注册时间2015-12-12

最后登录2016-11-28

6楼

ofsummer|

|

2016-1-29 15:02

|

只看该作者

听说ucos ii 2.91版本要比2.86版本稳定

你有没有用过软件定时器的啊?

使用特权

评论回复

点赞共0人点赞

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

7楼

ywlzh|

楼主

|

2016-1-29 17:35

|

只看该作者

ofsummer 发表于 2016-1-29 15:02

听说ucos ii 2.91版本要比2.86版本稳定

你有没有用过软件定时器的啊?

我用的就是V2.91,软件定时器,就是个定时器而已,也是个任务,优先级好像还是最高的

使用特权

评论回复

点赞共0人点赞

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

8楼

ywlzh|

楼主

|

2016-1-29 17:37

|

只看该作者

ccw1986 发表于 2016-1-28 20:49

开始觉得ucos ii很简单,现在觉得越学不会的越多

那是因为你没有仔细琢磨过细节,但是也别太在意细节,不然会把自己绕晕的,操作系统就是为了让用户去很方便的使用的,要不然时间片论法搞定就可以了

使用特权

评论回复

点赞共0人点赞

neeringstu

当前离线

关注TA

发消息

35

主题235

帖子722

积分

高级技术员

高级技术员, 积分 722, 距离下一级还需 278 积分

高级技术员, 积分 722, 距离下一级还需 278 积分

积分722

在线时间11 小时

精华0

注册时间2016-1-4

最后登录2016-11-26

9楼

neeringstu|

|

2016-1-30 20:15

|

只看该作者

邮箱和信号量把我搞糊涂了,我在中断里面发送邮箱,有时候总是响应不了,不知道为什么

使用特权

评论回复

点赞共0人点赞

ywlzh

当前离线

关注TA

发消息

15

主题279

帖子873

积分

高级技术员

高级技术员, 积分 873, 距离下一级还需 127 积分

高级技术员, 积分 873, 距离下一级还需 127 积分

积分873

在线时间185 小时

精华0

注册时间2015-5-17

最后登录2023-6-7

10楼

ywlzh|

楼主

|

2016-1-30 20:57

|

只看该作者

本帖最后由 ywlzh 于 2016-1-30 20:59 编辑

neeringstu 发表于 2016-1-30 20:15

邮箱和信号量把我搞糊涂了,我在中断里面发送邮箱,有时候总是响应不了,不知道为什么 ...

邮箱就是一个字节,需要你在程序中自己设定数值大小,然后请求邮箱时的返回值就是邮箱的数值,根据这个数值再去做相应的操作,说白了,这也可以是一个通信协议,拿错误处理机制,就可以用邮箱,每一个错误对应一个数值,在请求邮箱是就会得到这个数值,你可以用switch,或者if ,else if来对错误的数值做出相应的操作,比如:在main函数之外写下:

OS_EVENT *Str_Box; //定义事件控制块指针 定义消息邮箱的指针

在统计任务之后写下:

Str_Box=OSMboxCreate((void *)0); //创建消息邮箱 返回值是指向创建消息邮箱的指针

//该函数的参数为void *msg 是消息指针,在这里(void *)0表示初始值为NULL 这样也就表示

//新创建的这个消息邮箱里没有内容l

以上,邮箱就创建成功!

怎么使用它,发送时,自己需要定以一个局部变量就可以了,

比如发生了一个错误,我将这个错误定为0x01,当程序走在了这个错误里的时候,

uint8_t err_value=0x01; //错误类型为0x01

OSMboxPost(Str_Box,&err_value); //发送消息err_value 其中两个参数Str_Box是OS_EVENT *pevent表示消

//息邮箱指针(是事件控制块指针),err_value是void *msg表示消息指针

//该函数表示把消息err_value发送到消息邮箱Str_Box中

请求时,在某个任务里,无限循环外或者在请求之前定义一个指针,

u8 *value;

u8 err;

value=OSMboxPend(Str_Box,0,&err);

//请求消息邮箱 参数表示:Str_Box是消息邮箱指针,0表示等待无限,

//err表示错误信息,返回值value是邮箱中的消息指针

其中不要把err与value搞混了,value是函数返回值,err是这个函数执行的结果,也就是这个函数执行完了之后会打印一些信息到err上,如果要求没什么意外,就不用管err,接下来就直接去处理指针value

使用特权

评论回复

共1人点赞

LED吴生

当前离线

关注TA

发消息

8

主题84

帖子262

积分

中级技术员

中级技术员, 积分 262, 距离下一级还需 38 积分

中级技术员, 积分 262, 距离下一级还需 38 积分

积分262

在线时间161 小时

精华0

注册时间2016-12-27

最后登录2022-5-19

11楼

LED吴生|

|

2017-5-24 20:55

|

只看该作者

使用特权

评论回复

点赞共0人点赞

kkzz

当前离线

关注TA

发消息

332

主题1万

帖子3万

积分

技术总监

技术总监, 积分 33821, 距离下一级还需 16179 积分

技术总监, 积分 33821, 距离下一级还需 16179 积分

积分33821

在线时间877 小时

精华0

注册时间2012-8-17

最后登录2025-7-19

打赏0.00受赏27.00

12楼

kkzz|

|

2017-5-24 23:00

|

只看该作者

一般都是使用别人的工程文件。

使用特权

评论回复

点赞共0人点赞

kkzz

当前离线

关注TA

发消息

332

主题1万

帖子3万

积分

技术总监

技术总监, 积分 33821, 距离下一级还需 16179 积分

技术总监, 积分 33821, 距离下一级还需 16179 积分

积分33821

在线时间877 小时

精华0

注册时间2012-8-17

最后登录2025-7-19

打赏0.00受赏27.00

13楼

kkzz|

|

2017-5-24 23:03

|

只看该作者

ucos的变量共享还真不知道。

使用特权

评论回复

点赞共0人点赞