[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人点赞