(文章目录) 前言 本篇文章将作为FreeRTOS最全教程的目录使用。 一、为什么要学FreeRTOS 1.嵌入式系统开发: FreeRTOS 是一款广泛用于嵌入式系统开发的实时操作系统。它可以帮助你构建复杂的嵌入式应用程序,有效管理多个任务和资源。 2.实时性: FreeRTOS 提供了实时性,允许你创建实时任务,确保任务在规定的时间内完成,适用于需要及时响应外部事件的应用,如飞行控制系统、医
(文章目录) 前言 本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。 一、工程的创建 1.开始工程的创建: 2.芯片型号选择: 3.修改时钟为TIM8: 在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。 4.配置RCC: 5.配置FreeRTOS: 6.开启串口方便调试和观察: 7.工程路径及编译
(文章目录) 前言 本篇文章将带大家学习什么是事件组以及如何使用事件组。 一、事件组概念 事件组通常是由一组位(bits)组成的数据结构,其中每一位都对应着某个特定的事件。每个位可以被设置或清除,表示相应的事件发生或未发生。这种位的组合形成了一个类似于二进制数的集合,每个位都代表着某个特定的状态或事件。因此,可以将事件组视为由一系列二进制位构成的数据结构,每个位代表着一个独立的事件状态。 事件组
(文章目录) 前言 本篇文章带大家学习什么是互斥锁,并且学习一下互斥锁中一些函数的使用方法。 一、互斥锁的概念 FreeRTOS中的互斥锁(Mutex)是一种同步机制,用于控制多个任务对共享资源的访问,以确保只有一个任务可以访问该资源,从而避免竞争条件和数据损坏。互斥锁是一种二进制信号量,它只有两个状态:已锁定和未锁定。 二、互斥锁相关函数 1.xSemaphoreCreateMutex():
(文章目录) 前言 在正式的学习如何编写ADC代码时我们先来学习一下ADC的基础知识部分,只有掌握好了这些基础知识才能顺利的进行后面的代码编写。 一、ADC的基本介绍 ADC 指的是模数转换器(Analog-to-Digital Converter),它是一种用于将模拟信号转换为数字信号的电子设备或电路。 模拟信号是连续变化的信号,可以取无限个可能的值,而数字信号则是离散的,只能表示有限个数值。
(文章目录) 前言 本篇文章带大家学习一下如何使用RTOS API函数创建任务。 一、cuebMX配置 具体配置 二、代码解析 1.系统创建的任务函数 下面我们来看看系统是如何创建一个任务的。 osThreadId defaultTaskHandle;//任务函数句柄 //StartDefaultTask:任务函数名字 //defaultTask:名字 //osPriorityNormal:任务
(文章目录) 前言 本篇文章带大家简单的配置一下FreeRTOS 一、FreeRTOS介绍 在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。下面我就带大家使用cuebMX配置一下RTOS。 二、cubeMX配置 1.单片机型号选择 2.sys配置
(文章目录) 前言 本篇文章开始带大家来学习一下什么是软件定时器,并掌握相关API函数的使用方法。 一、软件定时器概念 软件定时器是FreeRTOS中的一个重要概念,用于在实时应用程序中生成定时事件,而无需硬件定时器的支持。以下是有关FreeRTOS中软件定时器的概念: 软件定时器的用途: 软件定时器允许在RTOS任务中创建和管理定时事件,而无需硬件定时器。 它们常用于在一段时间后触发特定任务或
(文章目录) 前言 本篇文章来为大家讲解信号量的具体使用。 一、使用二值信号量完成同步 下面先举一个代码示例: 创建两个优先级相同的任务,这两个任务同时访问一个串口资源: void Task1Function(void * param) { int i; while (1) { printf("Task1\r\n"); } } void Task2Func
(文章目录) 前言 本篇文章正式带大家开始学习什么是信号量,并且掌握信号量函数的基本使用方法,并且将和队列进行一个对比。 一、什么是信号量 FreeRTOS 中的信号量是一种用于任务间同步和互斥的机制。它允许任务在临界区保护资源的访问、线程间通信以及任务之间的同步操作。信号量可以用来保护共享资源,限制对资源的并发访问,以及进行任务间的事件通知。 二、信号量种类和对比 FreeRTOS 提供了两种
(文章目录) 前言 上篇文章我们已经讲解了队列的概念和队列相关的API函数,那么本篇文章的话就开始带大家来学习使用队列。 一、队列基本使用 这个例子将会创建三个任务,其中两个任务用来发送数据到队列中,另一个任务用来从队列中读取数据。 void Task1Function(void * param) { int val; while (1) { val = 100; xQueue
(文章目录) 前言 本篇文章将带大家学习FreeRTOS中的队列,掌握什么是队列,并且学习如何使用队列,在什么场景会使用到队列。 一、队列概念 FreeRTOS中的队列(Queue)是一种用于在任务之间传递数据的数据结构,它遵循先进先出(FIFO)的原则。队列在实时嵌入式系统中非常有用,因为它们允许任务之间以安全和同步的方式共享信息,而无需使用全局变量或其他不安全的方法。以下是有关FreeRTO
(文章目录) 前言 本篇文章将带大家学习一下什么是空闲任务以及钩子函数,以及学习FreeRTOS中的任务调度算法,了解在FreeRTOS中任务是如何进行切换调度的。 一、空闲任务概念 空闲任务(Idle Task)是嵌入式实时操作系统(RTOS)中的一种特殊任务。它是系统中优先级最低的任务,并且在系统中没有其他任务需要执行时运行。空闲任务的目的是让处理器在没有其他工作需要执行时保持忙碌状态,从而
(文章目录) 前言 前几篇文章一直在围绕FreeRTOS中的任务创建,删除,优先级,调度算法进行讲解,那么从本篇文章开始将围绕同步与互斥来展开讲解。 一、同步与互斥概念 当多个任务或线程共享资源并发执行时,同步和互斥是两个关键的概念。 1.同步(Synchronization) 是指协调多个任务或线程的执行顺序和相互之间的行为,以确保它们按照一定的顺序、时机和约束进行执行。同步的目的是保证任务或
(文章目录) 前言 本篇文章来讲解DMA的概念,并使用DMA来进行串口的数据收发。 一、DMA概念 DMA(Direct Memory Access,直接内存访问)是一种计算机系统的技术,允许外部设备(如硬盘驱动器、网络适配器或图形卡)直接与计算机内存进行数据传输,而不需要CPU的直接参与。这种直接的内存访问可以提高数据传输的效率,并减轻CPU的负担。 在没有DMA的情况下,数据传输通常需要通过
(文章目录) 前言 本篇文章主要带大家学习如何使用按键进行开关灯的操作。 一、CubeMX配置 cubeMX配置大家可以参考下面文章,这里我只讲需要添加的地方。 传送门 按键GPIO口设置为输入模式,由上面原理图可以知道按键在没有按下的时候电平状态不确定,所以我们应该给按键加一个上拉电阻,在按键没有按下时GPIO电平状态就为高电平,按键按下时GPIO电平状态就为低电平。 二、代码解析 这里我
(文章目录) 前言 本文将介绍stm32定时器的使用。 一、定时器介绍 定时器是单片机内部的特殊功能模块。 在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。 要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。 软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执
(文章目录) 前言 本篇文章将带大家学习如何使一个LED灯闪烁。 一、cubeMX配置 CubeMX配置和点亮一个LED的配置方法是一样的,点亮一个LED灯。 二、使用HAL库函数点亮LED灯 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET); HAL_Delay(500);//HAL库自带的ms级延时函数 HAL_GPIO_WritePin(G
(文章目录) 前言 本文主要带大家使用CubeMX配置蜂鸣器 一、蜂鸣器介绍 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、 复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣 器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路, 一通电就会发声;无源蜂鸣
(文章目录) 本篇文章将带大家使用CubeMX配置stm32点亮一个LED灯。 一、CubeMX配置LED IO口 1.单片机型号选择: 这里我使用的是正点原子的精英版,大家可以根据自己的单片机选择相应的型号。 2.IO口及其他配置: 这里根据自己单片机LED IO口的位置将IO口配置为输出模式,当IO口输出低电平时LED灯被点亮。 配置时钟树 生成工程代码 二、使用HAL库函数点亮
(文章目录) 前言 本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。 一、HC-SR04超声波模块介绍 HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。 下面是HC-S
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 (文章目录) 前言 本篇文章正式学习FreeRTOS操作系统,我打算编写一系列文章带大家轻松快速入门FreeRTOS操作系统。 一、FreeRTOS操作系统介绍 FreeRTOS是一款开源、实时、嵌入式的操作系统,它被广泛应用于小型嵌入式系统和微控制器中。FreeRTOS的设计目标是提供一个轻量级、可移植、易于使用的实时操作系
(文章目录) 前言 本篇文章将介绍FreeRTOS任务的创建(动态方法和静态方法),了解什么是任务和任务的具体创建方法。 一、FreeRTOS任务基本概念 任务(Task):FreeRTOS 中的任务是程序执行的基本单位。任务以优先级的方式管理,高优先级的任务比低优先级的任务更容易被执行。每个任务都具有不同的堆栈和一组标志,用于控制任务的行为和与其他任务和内核进行通信。 二、动态创建任务 在Fr
(文章目录) 前言 本篇文章给大家介绍一下串口的基础编程知识,这些知识是属于串口的理论知识,在开始学习编写代码的时候必须要掌握这些基本的知识点。 一、串行通信和并行通信 串行通信和并行通信是两种不同的数据传输方式。 串行通信是指在一条单独的通信线路上,通过一个位一个位地传输数据,每个位依次传输,数据帧的每个位之间有一定的延时,数据被逐位发送或接收。串行通信一般使用较少的连接线路,但速度较慢,适合
(文章目录) 前言 本篇文章带大家学习一下SYN6288语音模块,这个模块可以用于车载设备,语音电子书等众多产品当中,而且这个模块支持多种编码格式,GB2312,GBK等字符编码格式。 一、SYN6288介绍 SYN6288语音合成模块是一种语音合成设备,其可实现文字转语音功能,将输入的文字信息通过内部的处理和合成,输出相对应的语音信息。SYN6288模块具有语音合成质量高、输出音质好、使用方便
(文章目录) 前言 本篇文章将讲解HC-SR04超声波模块的驱动程序编写,有了上篇SR501模块驱动程序编写的基础后这篇文章大家将会学的非常轻松。 一、HC-SR04超声波模块介绍 HC-SR04超声波模块是一种常用于距离测量和障碍物检测的模块。它通过发射超声波信号并接收回波来计算所测量物体与传感器之间的距离。 HC-SR04超声波模块内置有发射器、接收器和控制电路。当模块接收到输入信号后,发射
(文章目录) 前言 本篇文章将带大家学习使用DHT11湿温度模块,使用这个模块可以获取当前的温度和湿度数据。DHT11可以用于智能家居,蔬菜大棚等项目当中适用范围广。 一、DHT11模块介绍 DHT11 是一种数字式温湿度传感器,由杜邦公司推出。它可以测量环境中的温度和湿度,并将测量结果以数字形式传输给微控制器或其他电子设备,适用于通过数字信号读取环境温湿度的应用场景。 DHT11 传感器使用单
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号