自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 uCOS-iii学习笔记(11)——任务信号量和任务消息队列

任务消息队列和任务信号量

2022-07-07 11:27:49 473 1

原创 【Ucos-III源码分析】——等待多个内核对象

一、等待多个内核对象

2022-07-06 21:17:50 331

原创 【Ucos-III源码分析】——事件标志组

ucos事件标志组原理

2022-07-06 14:05:45 583

原创 【Ucos-III源码分析】——消息队列

ucos消息队列

2022-07-06 10:48:40 792

原创 【Ucos-III源码分析】——互斥信号量(互斥锁)

mutex互斥信号量(互斥锁)

2022-07-05 16:17:39 1172

原创 【Ucos-III源码分析】——信号量

信号量的分析。

2022-07-04 13:10:52 471

原创 【Ucos-III源码分析】——软件定时器

软件定时器实现

2022-07-03 18:00:34 663

原创 uCOS-III学习笔记——软件定时器

uCOS-III学习笔记——软件定时器

2022-07-02 16:18:19 213

原创 【Ucos-III源码分析】——时间片轮转

时间片轮转实现

2022-07-02 15:40:24 244

原创 uCOS-III学习笔记——时间片轮转

uCOS-III学习笔记——时间片轮转

2022-07-02 15:24:30 429

原创 【Ucos-III源码分析】——任务创建

ucos-iii任务创建时都干了些什么事儿

2022-07-01 21:03:24 639

原创 【Ucos-III源码分析】——系统初始化

Ucos-III系统调用OSInit(&err);初始化内核都做了什么

2022-07-01 15:39:26 584

原创 【Ucos-III源码分析】——内存管理机制

ucos-iii内存调度原理

2022-06-30 23:23:33 662

原创 STM32学习笔记--DMA操作和理解

DMA的理解:DMA表示:直接内存访问,用来提供外设和存储器或者存储器和存储器之间的数据传输:可以避免CPU的干预,提升CPU的效率。小贴士:正常来说所有的数据传输转移复制等功能都需要CPU的参与,所以在浪费CPU的资源,所以DMA可以把这些简单的工作换成不需要CPU参与,将CPU完全转化成数据计算,逻辑处理。DMA通道的配置:需要用哪个功能就需要用对应的通道。DMA的初始化配置:注意 :这里我使用USART演视DMA功能,需要在USART里面使能DMA功能USAR...

2022-02-25 15:11:01 731

原创 uCOS-III学习笔记(10)----等待多个内核对象

理解:等待多个内核对象说的就是,比如一个任务需要等待信号量才能打开led1,等待一个消息队列才能打开led2,此时不用等待多个内核对象的话就算来了信号量也会被pend卡住而不能往下面运行,所以等待多个内核对象解决的就是这类问题。创建多个内核对象:比如需要等待一个信号量和一个消息队列,多内核对象就可以看成是一个数组OS_SEM MY_SEM;OS_Q MyMsgQ;OS_PEND_DATA mul_pend_array[2];//等待两个 这里就是2 OSSemCreate ((OS

2021-12-17 10:13:43 444

原创 uCOS-III学习笔记(9)----任务标志组

理解:这个其实很好理解,比如想完成这样一个功能,任务1的按键1按下并且按键2按下,此时任务2的灯才会亮,(这里说的并且也可以改成任意一个事件触发)。OS_FLAG_GRP MyEventFlag; OSFlagCreate((OS_FLAG_GRP *)&MyEventFlag, (CPU_CHAR *)"MyEventFlag", (OS_FLAGS )0, //状态的初始值,这里写0后面就要写置位,反之相同 (OS_

2021-12-17 09:25:43 206

原创 uCOS-III学习笔记(八)----消息队列

目录1.消息队列的理解和创建2.消息队列的作用3.例子演视1.消息队列的理解和创建(1)理解:消息队列本质上是一种任务之间的数据传输的桥梁,利用消息队列可以在不同的任务当中传递数据。(2)消息队列的创建,参考ucosiii的api手册例子和参数解释:OS_Q MyMsgQ; //这个需要自己定义 OSQCreate((OS_Q *)&MyMsgQ, //你上面定义啥,就传啥的地址.

2021-12-16 20:40:05 494

原创 uCOS-III学习笔记(七)----优先级反转

理解优先级反转是什么现象:优先级反转发生的原因就是因为多种任务执行的时候因为没有信号量执行不了,或者因为延时让出了cpu的使用权,导致其他的优先级低的任务先执行了。这就是优先级反转的现象举个例子:例子很关键extern OS_SEM MY_SEM; //创建的信号量void Task_1(void *p_arg){ OS_ERR err; (void)p_arg; while(1) { OSTimeDlyHMSM(0, 0, 0, 500

2021-12-16 16:04:52 770

原创 uCOS-III学习笔记(六)----信号量

ucos-III信号量的理解,创建,使用

2021-12-16 15:25:31 226

原创 u-COS-III学习笔记(3)---时钟节拍

ucos-iii的时钟节拍设置和使用

2021-12-16 11:04:33 808

原创 STM32----PWM脉宽调制信号的输出

stm32的利用定时器产生脉宽调制信号。

2021-12-05 19:53:47 1295

原创 STM32----矩阵按键

基于STM32的矩阵按键开发流程 附代码。

2021-12-05 19:34:10 3461

原创 STM32基础学习笔记(5)---WWDG窗口看门狗

一、窗口看门狗(WWDG):这个和独立看门狗有点区别,这个有一个时间控制 请看下面的例子(非常精简)//------------------------------------------------------------------------举个例子,有一个程序从第0秒开始运行,在不产生任何其他干扰的情况下会在第5秒运行完;现在设置了看门狗(如果程序在第5秒还没运行完,就产生复位),现在程序收到了干扰在第二秒跑飞了,但是紧接着又被干扰了使得程序恢复了原来的位置,这个过程被消耗了0.

2021-12-03 16:28:02 524

原创 STM32学习笔记(4)---低功耗停止模式

一、低功耗模式的第二种---停止模式,相比于第一种睡眠模式,这种在上种的基础之上关闭了所有1.8V供电的部分以及HSI和HSE外部高速和内部高速时钟。功耗更低二、进入到该模式的方法官方手册中提供了,意思就是要控制寄存器来进入到这个模式,但是我们选择更方便的用库函数1.想到电源控制,就一定要先开启电源控制的时钟,这里的电源控制时钟被RCC的APB1总线控制所以第一步:使能它RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);2.

2021-12-03 16:10:44 2228 2

原创 STM32基础学习笔记(3)---低功耗睡眠模式

一、STM32低功耗模式--睡眠模式理解:1.睡眠模式可以简单理解为关闭ARM内核的供电,但是外围仍然在工作,意思就是发指令的没了,但是他的小弟还在休息。具体调用方法:1.通过在keil编程环境当中调用 __WFI(); 指令来进入到系统的睡眠模式进入后的唤醒方法1.中断唤醒(意思就是你不管啥中断 只要能进中断就能唤醒)2.事件唤醒(这个我还不太明白,没使用过,小伙伴可以查一下)展示一下 我这里是复用PA0的外部中断功能进行唤醒。也可以用其他的中断进行唤醒。...

2021-12-03 15:24:18 1592

原创 STM32基础学习笔记(2)---独立看门狗

一、IWDG(独立看门狗的配置)理解:1.独立看门狗用的是内部的低速时钟40Khz(实际为30-60Khz)2.独立看门狗的作用是 将跑飞的程序重新复位(有时候因为强电磁,太阳黑子活动干扰会把程序弄得跑飞)3.看门狗也就是字面意思,在你程序运行的同时,必须按照一定的时间段来进行 ‘喂狗 ’操作,不然你的狗就会乱叫导致程序复位。4.独立看门狗其实就是一个递减计数器,当计数器减为0的时候(且没有在减到0之前喂狗)就会触发独立看门狗复位5.独立看门狗是16位的 最大是65535;意思从最大

2021-12-03 10:02:19 366

原创 STM32基础学习笔记(1)---外部中断

一、外部中断1.在User文件夹中添加bsp_exti.c和bsp_exti.h文件,完成头文件的套路编写2.编写EXTI_GPIO_Conguartion(); EXTI1的初始化函数void EXTI_GPIO_Conguartion(void){ GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO的结构体 NVIC_InitTypeDef NVIC_InitStructure; .

2021-12-03 09:38:50 530

原创 uCOS-III学习笔记(2)----创建任务

1.在ucos-iii下创建自己的任务 1.在工程文件下创建APP文件夹,在文件夹里创建app.c和.h文件 2.可以把OSTaskCreat()这个里面创建任务的搬过来 再对照手册进行参数的修改 就可以创建出自己的任务OSTaskCreate((OS_TCB *)&OSIdleTaskTCB, (CPU_CHAR *)((void *)"uC/OS-III Idle Task"), ...

2021-11-30 15:29:27 603

原创 uCOS-III学习笔记(1)-----整体系统,任务概念

uCOS-III学习笔记(1)

2021-11-30 10:27:10 331

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除