freeRTOS支持多个任务具有相同的优先级,因此,当它被配置为可抢占内核时,调度算法既支持基于优先级的调度,也支持时间片轮流调度。任何时候调度器运行时它都选择处于就绪状态下的优先级最高的那个任务;如果有多个任务处于同一优先级,则freertos每个时钟节拍的中断服务程序中,将对这些任务应用换调度算法,轮流执行这些任务。系统用uxTopReadyPriority全局变量记录当前处于就绪态的任务的最            
                
         
            
            
            
            目录一、动态内存管理介绍1、heap_12、heap_23、heap_34、heap_45、heap_5二、动态内存总结与应用1、heap_12、heap_43、heap_5三、内存管理编程测试1、heap_42、heap_13、heap_5一、动态内存管理介绍动态内存管理是 FreeRTOS 非常重要的一项功能,前面章节讲解的任务创建、信号量、消息队列、事件标志组、互斥信号量、软件定时器组等需要            
                
         
            
            
            
            低功耗是 MCU 的一项重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 STM32F103 睡眠模式介绍说明:在 FreeRTOS 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看 STM32F103 参考手册和 Cortex-M3 权威指南。在系统或电源复位以后,微控制器处于            
                
         
            
            
            
            总目录FreeRTOS学习—“任务”篇FreeRTOS学习—“消息队列”篇FreeRTOS学习—“信号量”篇FreeRTOS学习—“事件组”篇FreeRTOS学习—“定时器”篇书接上文,继续来学习一下FreeRTOS的消息队列。基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序。这些独立的任务之间很可能会通过相互通信以提供有用的系统功能。FreeRTOS 中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-05 05:53:06
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SMT32CubeMx安装详解 文章目录SMT32CubeMx安装详解前言一、准备工作二、CubeMax安装三、工程参数配置总结 前言记录CubeMax软件安装和相关工程配置的简单操作一、准备工作在我们进行软件安装之前首先将我们需要用到的各类软件下好,安装包链接放下面了需要的自行下载哈。链接: https://pan.baidu.com/s/1a0Cgyxxq0MCX6kNFA7ClCQ 提取码:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 07:06:49
                            
                                113阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            DMA简介DMA(Direct Memory Access)——直接存储器存取功能 在外设到存储器或者存储器到存储器提供高速的数据传输支持特点不占用CPU,DMA负责直接传输数据,CPU则可以处理其他事物传输方式 DMA_Mode_Normal,正常传输模式 当一次DMA数据传输完后,停止DMA传送 。也就是只传输一次DMA_Mode_Circular ,循环传输模式 当传输结束时,自动重置寄存器            
                
         
            
            
            
            FreeRTOS自学总结:1.任务函数一般不允许跳出循环,如果一定要跳出循环的话在跳出循环以后一定要调用函数vTaskDelete(NULL)删除此任务也就是每一个任务都要在一个死循环中,如果退出死循环,就要删掉这个任务2.二值信号量创建完之后需要释放之后才会生效创建之后,默认flag为0,只有释放信号量之后flag才为13.互斥信号量创建完之后默认是有效的;不能用于中断中创建之后默认盒子里是有钥            
                
         
            
            
            
            基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序。这些独立的任务之间很可能会通过相互通信以提供有用的系统功能。FreeRTOS 中所有的通信与同步机制都是基于队列实现的。通常情况下,队列被作为 FIFO(先进先出)使用,即数据由队列尾写入,从队列首读出。当然,由队列首写入也是可能的。往队列写入数据是通过字节拷贝把数据复制存储到队列中;从队列读出数据使得把队            
                
         
            
            
            
            一、usmart介绍1、usmart简介本USMART调试组件是正点原子开发提供的,主要功能是通过串口调试单片机里的函数,并执行。对于代码调试很有帮助。我们普通的代码调试是通过:改写函数,修改参数,编译下载,查看结果;如果不满意的话继续这个流程。这样流程很麻烦而且单片机也是有寿命的,如此往复有损寿命。使用USMART调试组件,只需要在串口调试助手里面输入函数以及参数,然后通过串口直接发送给单片机,            
                
         
            
            
            
            【预处理】C语言提供了其他高级语言没有的预处理工具。在源代码通过编译器之前,预处理器先对源代码进行处理,他是在称之为预处理器命令行或指令的控制下操作。预处理指令大致分为三类:宏替换指令、文件包含指令、编译器控制指令1.宏替换指令 宏替换是程序中的标识符被预定义的字符串取代的过程。在#define语句指令下工作。一般形式是#define identifier strin            
                
         
            
            
            
            示波器的原理简单来说就是一个ADC转换,然后根据采集的不同电压在屏幕上显示出来。今天就是说说示波器采样率到底是怎么回事。1、举例描述采样率1.存储深度想象一下一张照片要怎么样才能清晰?当然是像素点越多,照片包含的原始信息就越接近真实,自然看起来也就越清晰。我们从示波器上看到的波形其实也可以理解成一张照片,那么这张照片包含的点越多,自然也就越接近真实的样子。示波器的存储深度就是表达了示波器最多能存储            
                
         
            
            
            
            1.什么是FreeRTOS        RTOS从名字上可以分为free和RTOS两部分。free是免费的意思,RTOS全称是Real Time Operation System,译为实时操作系统。那FreeRTOS的意思就是“免费的实时操作系统”。RTOS不是指某一个特定的系统,而是一类系统。比如uC/OS,Fre            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 10:27:50
                            
                                164阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录一、HAL库二、STM32CubeMX三、安装STM32CubeMX软件安装JAVA安装STM32CubeMX软件安装固件包四、STM32CubeMX软件启动界面一、HAL库HAL库,全称就是Hardware Abstraction Layer(抽象印象层)。库如其名,很抽象,一眼看上去不太容易知道他的作用是什么。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL            
                
         
            
            
            
            1.前言FreeRTOS是小型多任务嵌入式操作系统,硬实时性。本章主要讲述任务相关特性及调度相关的知识。2. 任务的总体特点任务的状态(1)任务有两个状态,运行态和非运行态(2)任务由非运行态转入运行态为切入,相反为切出设置优先级(1)最高优先级在FreeRTOSConfig.h 中 设 定 的 编 译 时 配 置 常 量configMAX_PRIORITIES中进行设置。注:FreeRTOS 本            
                
         
            
            
            
            队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、 中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务 能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可 以指定阻塞的任务时间xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞 状态以等待队列数据有效。当队列中有新消息时,被阻塞的任务会被唤醒并处理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-05 13:24:28
                            
                                148阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             什么是队列队列的本质是一个缓冲区,用于进程间或进程与ISR之间的少量的数据传递,所以也称为消息队列,一般可以采用先进先出(FIFO)或后进先出(LIFO)的方式。FerrRTOS有针对于队列操作的函数,根据它们不同的功能可以分成:队列管理、获取队列信息、写入消息、读出消息四种,这些函数都可以在FreeRTOS的文档中查看,这里不再展开讲述,等下需要使用哪些我们会单独讲解。程序实现实验步            
                
         
            
            
            
             【ART-Pi】使用STM32CubeIDE搭建开发环境STM32CubeIDESTM32CubeIDE新建工程进入芯片选型界面HSE和LSE时钟源设置时钟系统(时钟树)配置Generate Code STM32CubeIDESTM32CubeIDE安装比较简单,这里略过,可以百度搜索相关教程STM32CubeIDE新建工程进入芯片选型界面选择具体的芯片型号:STM32H750XBH6 