- 博客(24)
- 收藏
- 关注
原创 FreeRTOS内存管理
FreeRTOS内存管理FreeRTOS内存管理简介程序#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "lcd.h"#include "key.h"#include "beep.h"#include "string.h"#incl...
2020-02-07 18:44:58
216
1
原创 空闲任务——钩子函数
空闲任务——钩子函数本章和上一章实验效果一样都是低功耗比上一章多一个函数#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "lcd.h"#include "key.h"#include "beep.h"#include "string.h...
2020-02-07 18:19:26
738
原创 FreeRTOS低功耗模式
FreeRTOS低功耗模式睡眠模式停止模式待机模式系统配置添加两个函数程序这里程序和二值信号量程序一样,只添加两个函数即可,这里不做太多说明。添加的函数是:void PreSleepProcessing(uint32_t ulExpectedIdleTime)和void PostSleepProcessing(uint32_t ulExpectedIdleTime)。#in...
2020-02-07 18:07:13
690
原创 FreeRTOS任务通知
FreeRTOS任务通知FreeRTOS任务通知简介任务通知发送函数任务通知获取函数返回值:任何值实验任务通知模拟二值信号量#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "key.h"#include "b...
2020-02-06 18:47:07
241
原创 FreeRTOS——事件标志组
FreeRTOS——事件标志组事件标志组事件标志组简介使用信号量同步任务只能与单个时间或任务进行同步,如果要莫个任务与多个事件或者任务进行同步,这时需要事件标志组来处理。事件标志组相关函数事件标志组创建函数设置事件位函数获取事件标志组值函数等待指定事件位函数实验要求程序主程序#include "sys.h"#include "delay.h...
2020-02-06 16:12:38
368
原创 FreeRTOS软件定时器
FreeRTOS软件定时器FreeRTOS软件定时器简介软件定时器允许设置一段时间,当设置的时间达到之后就执行功能函数,被定时器调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期,简而言之,当定时器到达了以后就会执行回调函数。软件定时器的回调函数在定时器的服务任务中执行,所以一定不要在回调函数中调用任何会阻塞任务的API函数。(比如:vTaskDelay(10...
2020-02-06 15:14:01
316
原创 信号量——互斥信号量
信号量——互斥信号量互斥信号量简介解决了优先级翻转问题。释放信号量和获取信号量与数值信号量和二值信号量一样。程序#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "lcd.h"#include "key.h"#include "b...
2020-02-05 19:05:18
182
原创 信号量——计数信号量
信号量——计数信号量计数信号量计数信号量简介计数信号量又称为数值信号量,二值信号量相当于长度为1的队列,计数信号量相当于长度大于1的队列。计数信号量函数计数信号量创建函数计数信号量释放和获取函数计数信号量同二值信号量和互斥信号量函数一样。实验要求程序#include "sys.h"#include "delay.h"#include "usart.h"#in...
2020-02-05 17:21:34
1713
原创 信号量——二值信号量
信号量——二值信号量信号量简介信号量是操作系统的重要部分,信号量一般用来进行资源管理和任务同步。FreeRTOS中信号量分为二值信号量、互斥信号量、计数信号量和递归互斥信号量,应用场景各不同。二值信号量二值信号量简述二值信号量通常用于互斥访问或同步,二值信号量和互斥信号量非常相似,但互斥信号量有优先级,二值信号量没有。因此二值信号量更适合用于同步,而互斥信号量适用于简单的互斥访问。二...
2020-02-05 16:34:20
4034
1
原创 FreeRTOS队列和相关函数
FreeRTOS队列和相关函数FreeRTOS队列什么是队列队列是为了任务与任务、任务与中断之间的通信而准备的,他可以任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之间要交流的数据保存到队列中,叫做队列项目。队列所能保存的最大数据项目的数量叫做队列长度,创建队列时会指定数据项目的大小和队列长度。由于队列是用来传递消息的,也称为消息队列。F...
2020-02-05 12:13:32
403
原创 任务切换——时间片
任务切换——时间片要求程序#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "FreeRTOS.h"#include "task.h"#define START_TASK_PRIO 1#define START_STK_SIZE...
2020-02-04 18:35:09
326
原创 FreeRTOS任务运行时间信息统计
FreeRTOS任务运行时间信息统计函数分析以下两个函数都是任务运行时间信息统计函数程序主程序#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"#include "key.h"#include "string.h"#include "FreeRTOS...
2020-02-04 17:56:50
1693
原创 FreeRTOS任务状态和信息查询
FreeRTOS任务状态和信息查询讲解FreeRTOS任务状态 TaskHandle=xTaskGetHandle("query_task"); //获取任务句柄(返回值任务句柄) TaskState=eTaskGetState(TaskHandle); //获取任务状态函数(返回值任务状态)举例:首先定义一个变量char TaskInfo[10];printf("/**...
2020-02-04 17:14:39
2915
1
原创 FreeRTOS列表与列表项
FreeRTOS列表与列表项定义分析列表列表是FreeRTOS的数据结构,和链表相似。列表是用来跟踪FreeRTOS的数据任务。列表项列表项链表项就是存放列表中的项目,FreeRTOS中提供了两种列表项:列表项和迷你列表项。迷你列表项相关函数1.列表初始化 vListInitialise(&TestList); //...
2020-02-04 11:15:54
130
原创 FreeRTOS中断
FreeRTOS中断实验实现的原理设计实验中断配置timer.c文件#include "timer.h"#include "led.h"#include "usart.h"//通用定时器3中断初始化函数//arr:自动重装值//psc:时钟预分频数//定时器溢出时间:Tout=((arr+1)*(psc+1))/Ft us.//Ft=定时器工作频率,单位:Mhz//定...
2020-02-03 18:18:02
283
原创 FreeRTOS任务挂起和恢复
FreeRTOS任务挂起和恢复#什么是任务挂起和恢复当一个正在执行的任务突然停止运行,这个过程叫任务挂起;当挂起一段时间又开始运行叫任务恢复。(不能删除任务因为会会丢失数据,所以用暂停任务)...
2020-02-03 12:41:22
802
原创 FreeRTOS静态任务
FreeRTOS静态任务#流程1.复制一份移植好的工程或者复制一份之前配置好的动态任务创建删除工程2.系统设置3.增加空闲任务4.增加定时器任务5.任务创建和逻辑书写6.编译#系统设置#define configSUPPORT_STATIC_ALLOCATION 1 //静态(这个一定要写1)然后编译发现两个错误,这两个错误分别是没有找到空闲任务和没有找到定时器任务#增...
2020-02-03 11:36:30
627
原创 操作系统——FreeRTOS任务
操作系统——FreeRTOS任务#什么是任务操作系统的主要任务是处理诸如:管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统的类型非常多样,不同机器安装的操作系统可从简单到复杂,可从移动电话的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面...
2020-02-02 18:35:46
266
原创 FreeRTOS移植
FreeRTOS移植#准备工作1.空工程(如果采用正点原子的空工程里面的SYSTEM文件夹下的文件需要修改,本章以正点原子空工程为例,当然也可以自己创建但延时函数和串口需要自己写)2.FreeRTOS官方源码(FreeRTOSv9.0.0)#开始移植1.在空工程下建立一个FreeRTOS文件夹,将源码复制进去2.将FREERTOS\移植\FreeRTOS\portable路径下的文件...
2020-02-02 13:46:40
211
原创 C语言---动态链表
#动态链表静态链表和动态链表的区别:##静态链表和动态链表是线性表链式存储结构的两种不同的表示方式1、静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小。所以静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针。2、动态链表是用内存申请函数(malloc/new)动态申请内存的,所以在链表的长度上没有限制。动态...
2020-02-01 18:11:23
427
原创 FreeRTOS链表
#1.链表的定义链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。说...
2020-02-01 16:25:14
444
原创 C语言中链表
C语言中链表链表是数据结构和C语言中的链接,对于开发者要学习数据结构链表非常重要。#连表结构数据和指针构成链表,指针作用指向下一个内存地址。struct mode{ int data; struct mode *p;};头结点:头结点和首结点的数据类型是一模一样的,头结点是首结点前面的的结点,头结点不存放有效数据,头结点的作用是方便对链表操控。头指针:存放头结点地址的指针变量...
2020-02-01 11:11:00
170
原创 FreeRTOS工程建立
FreeRTOS工程建立1.创建文件夹首先创建文件夹 “FreeRTOS” ,然后创建文件夹“project” “USER“ 和 “FreeRTOS” 三个文件夹 ;然后在 “FreeRTOS”文件夹下分别创建两个文件夹 “include” 和 “portable”。 最后在 “USER“ 文件夹下分别创建两个文件夹 “include” 和 “portable”。2.打开kei...
2020-01-31 16:14:52
631
原创 2019-11-24
文章目录1. 读取电平1.1 stm32f103读取电平1.1.11. 读取电平1.1 stm32f103读取电平 stm32f103所读取的电平0,范围是0-1.5v;读取电平1,范围是1.5以上。int1.1.1...
2019-11-24 16:58:38
68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人