STM32UCOS自学笔记
文章平均质量分 78
悠然;̀͒̏ۖ
这个作者很懒,什么都没留下…
展开
-
UCOSIII自学笔记(6)--软件定时器
软件定时器简介本质上就是一个递减的计数器,当它递减到0时可以触发某个动作的执行。这个动作是用回调函数实现的。它的时间分辨率由宏OS_CFG_TMR_TASK_RATE_HZ定义。有一点要注意的是,使用软件定时器的话,一定要先把它打开:注意:回调函数中,一定不要调用阻塞,或者删除定时器的任务函数。常用API函数...原创 2020-07-08 16:13:46 · 114 阅读 · 0 评论 -
UCOSIII自学笔记(5)--信号量和互斥信号量
信号量简介信号量就是一个上锁的机制,代码必须获得钥匙才能执行,一旦获得了信号量,就相当于该代码具有了进入被锁代码的权限。说白了,就和java多线程中常用的锁非常相似。信号量类型在个人的理解中,可以把二进制信号量理解为java里的独享锁,计数形的看成类似于共享锁。信号量API函数OSSemCreateOSSemDel关于opt(我理解为模式),在源码的上面说明了。本人英语不太行。大概翻译过来就是这个意思,,,emm,,用大白话讲,就是,第一种用模式的话,只有需要信号量的任务都跑完了,它原创 2020-07-08 16:03:35 · 177 阅读 · 0 评论 -
UCOS自学笔记(4)--中断和时间管理
UCOSIII中断和裸机的中断是同一个概念。使用void USART1_IRQHandler(void) //´串口一中断服务函数{ u8 Res;#if SYSTEM_SUPPORT_OS //如果使用了UCOS OSIntEnter(); #endif if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断 { Res =USART_ReceiveData(USART1);原创 2020-06-29 14:29:31 · 217 阅读 · 0 评论 -
UCOS自学笔记(3)--系统任务
空闲任务空闲任务是UCOSIII创建的第一个任务空闲任务是必须创建的空闲任务的优先级总是OS_CFG_PRIO_MAK-1空闲任务不能调用任何可使空闲任务进入等待的函数此任务一般在OS_init中会自动创建了。时钟节拍任务主要是用来跟踪任务延时和等待的,是UCOSIII必须创建的任务之一。任务优先级使用宏定义OS_CFG_TICK_TASK_PRIO(这个宏定义可以在配置文件中改变),一般应设置一个较高的优先级。统计任务统计CPU使用率 和统计各个任务的CPU使用率和堆栈使用情况。原创 2020-06-28 14:20:12 · 167 阅读 · 0 评论 -
UCOS自学笔记(2)--时间片轮转调度
定义UCOSIII下即使是同一优先级下,也是可以存在多个任务的。所以在同一优先级下的任务一起跑的时候,可以给每个任务设定时间(以时间片单位),当这个任务的时间片运行完了之后,就运行下一个任务(任务之间是轮回的)。这样1->2->3->4->1这样无线轮回的。开启在UCOSIII配置文件中,把它打开就可以了使用完整代码#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#incl原创 2020-06-27 17:25:19 · 638 阅读 · 0 评论 -
UCOS学习笔记(1)—任务创建,挂起,恢复以及删除
UCOS任务创建USOS任务创建函数:OSTaskCreate函数参数原型:void OSTaskCreate (OS_TCB *p_tcb,//任务控制块 CPU_CHAR *p_name,//任务名称 OS_TASK_PTR p_task,//任务函数指向 void *p_arg,//数据区(传参)原创 2020-06-27 16:55:56 · 337 阅读 · 0 评论