自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32CubeIDE(CAN)

这意味着节点可以发送一个数据帧,并立即在同一节点上接收该帧,而不将其发送到总线上。这种模式主要用于测试CAN硬件和软件的正确性,因为它允许开发者检查发送的数据是否与接收的数据一致,而无需其他网络节点的参与。: 这是最常见的模式,在这种模式下,CAN节点可以发送和接收数据。所有的CAN功能都是可用的,节点可以参与总线上的数据交换,包括数据帧和远程帧的发送与接收。:它结合了静默模式和环回模式的特点,即节点既不会向总线发送数据,同时也会将发送的数据在内部进行环回,用于更细致的测试和调试目的。

2024-07-22 16:53:20 663

原创 STM32CubeIDE(低功耗模式)

在SLEEP模式下,CPU停止执行指令,但内部和外部的SRAM、寄存器和大部分外设(除了被显式禁用的)仍然保持活跃。系统时钟继续运行,因此定时器和中断可以触发唤醒事件。这种模式适用于需要快速响应中断的情况,因为它提供了较快的唤醒时间。然而,由于许多组件仍然运行,功耗比其他两种模式高。

2024-07-19 16:05:11 368

原创 STM32CubeIDE(看门狗)

独立看门狗(IWDG)独立看门狗是一个独立于系统时钟的硬件定时器,通常由一个低频的RC振荡器提供时钟源,这使得即使在系统时钟失效的情况下,看门狗依然可以工作。独立看门狗的功能相对简单,它持续地递减一个计数器,直到计数器达到0时触发系统复位。在正常的系统运行中,软件必须定期地“喂狗”(即重置计数器),以避免看门狗计数器溢出而触发复位。

2024-07-18 17:31:25 436

原创 STM32CubeIDE(STM32CubeMonitor)

STM32CubeMonitor 是意法半导体(STMicroelectronics)推出的一款强大的开发辅助工具,旨在帮助用户在运行时监控和调试STM32微控制器的应用程序。它是STM32Cube软件生态系统的一部分,用于替代早前的STM Studio工具。STM32CubeMonitor通过实时读取并显示STM32微控制器上的变量,使得开发者能够快速识别和诊断应用程序中的问题,进而优化性能。

2024-07-18 16:07:30 171

原创 STM32CubeIDE(DAC)

①配置DAC②配置定时器。

2024-07-18 11:44:27 234

原创 STM32CubeIDE(STM32L432KC片上ADC)

该ADC拥有多个输入通道,允许连接至不同的外部引脚以及一些内部源(如温度传感器、VREFINT等),能够测量16个外部信号源加上2个内部信号源,共计18个通道,这些通道分为规则通道组和注入通道组。通过STM32CubeMX软件或直接编程,用户可以灵活配置ADC的工作模式,包括但不限于连续转换、扫描模式(多通道连续转换)、单次转换或由事件触发的注入转换等。其精度通常优于±0.25%。STM32L432KC的ADC支持硬件过采样功能,可以通过增加采样次数提高有效分辨率,这对于需要高精度测量的应用非常有用。

2024-07-18 09:51:49 758

原创 STM32CubeIDE(RTC实时时钟)

RTC通常被设计成一个独立的定时器,它能够持续地追踪时间,即使在主电源关闭的情况下也能继续运行,这是因为RTC通常由一个小电池(如CR2032纽扣电池)供电,确保时间的连续性。例如,在电源电压下降到某个阈值以下时,RTC可以记录这个事件发生的时间点,从而帮助诊断问题或保护数据的完整性。例如,当系统检测到一个错误或异常,它可以记录下当前RTC的时间,这样维护人员就可以知道这个事件发生在什么具体时间,有助于后续的故障排查和系统维护。这些寄存器通常由一个独立的电池或备用电源供电,以确保数据的持久性。

2024-07-17 13:31:31 599

原创 (C++进阶)boost库笔记

boost::function 是 Boost 库中提供的一个通用函数对象包装器,它可以存储指向任何可调用对象的指针,并且可以在任何时候通过 operator() 调用。这个功能类似于C++11及以后版本中的 std::function。使用 boost::function 的主要好处是可以创建类型安全的函数指针容器,可以接受不同类型的函数、成员函数、lambda 表达式或仿函数(functor)作为参数,方便在算法和数据结构中传递可调用实体。

2024-03-14 11:23:47 560

原创 STM32CubeIDE(ADC)

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

2023-11-28 16:57:43 1566

原创 MIPI I3C协议

它提供了比传统的I2C更高的性能、更低的功耗,并且兼容性更好。I3C结合了I2C和SPI的优点,支持更快的数据传输速度和更高的设备连接性能。: I3C比I2C有更高的数据传输速率,因为它支持更高的频率和更有效的数据传输机制。该联盟致力于制定针对移动和嵌入式系统的通信接口和互联技术标准,包括传感器、显示器、摄像头等设备的通信接口标准,以提高设备之间的互操作性、降低成本并推动技术创新。联盟是一个由行业领先的移动设备制造商和半导体公司组成的非营利性组织,旨在制定和推广用于移动设备的开放标准接口。

2023-11-22 15:08:08 522

原创 (C++进阶)使用Eigen库进行多项式曲线拟合

Eigen是一个C++模板库,专门用于线性代数运算。它提供了矩阵、向量操作和线性代数算法所需的功能,且采用头文件形式,易于集成到C++项目中。

2023-11-09 10:48:24 2921 1

原创 (C++进阶)正则表达式

正则表达式(Regular Expression),通常简写为RegExp或Regex是一种用于匹配字符串模式的强大工具。它由一系列字符和特殊符号组成,用于定义匹配模式。正则表达式在文本处理、数据验证、搜索和替换等领域有广泛的应用。

2023-10-24 10:31:13 952

原创 Linux(进程间通信)

进程间通信 管道 信号量 消息队列 共享内存 套接字socket

2023-08-28 23:16:55 390

原创 常用快捷键

快捷键 VS STM32CubeIDE VIM

2023-08-28 11:39:25 237

原创 Linux(多进程与多线程)

多线程 多进程

2023-08-27 19:27:55 1383 1

原创 Linux(基础IO、文件权限、Makefile)

man手册 基础IO 文件权限 make与Makefile vim简单操作

2023-08-27 17:26:38 636 2

原创 STM32CubeIDE(Timer)

16位递增计数器,有DMA请求生成,捕获比较通道数0,所在总线:APB1,只具有定时功能,有连续定时模式和单次定时模式基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。它们可以作为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟。实际上,它们在芯片内部直接连接到DAC并通过触发输出直接驱动DAC。两定时器相互独立,不共享任何资源通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(

2023-08-25 16:28:17 1622

原创 STM32CubeIDE(SPI 读写)

/ 当前页面剩余可写字节数// 计算当前页剩余可写字节数// 如果要写入的数据长度小于等于当前页剩余可写字节数,直接写入当前页} else// 如果要写入的数据长度超过当前页剩余可写字节数,需要进行分页写入while (1)// 写入当前页数据break;// 数据已全部写入} else// 更新缓冲区指针、写入地址和剩余长度// 根据剩余长度判断下一页要写入的字节数} else// 发送指令// 接收指令// 写使能// 写使能指令// 写页数据。

2023-08-22 13:51:06 1781

原创 STM32CubeIDE常见问题

2、回车缩进过多回车换行字符缩进4个字符与系统生成代码不匹配解决办法:更改设置项目->属性->C/C++常规 -> 格式化程序 ->编辑选项。

2023-08-18 09:19:30 1898

原创 FreeRTOS(独立看门狗监测任务执行与低功耗Tickless模式)

① 监测系统死机② 监测任务执行Tickless 低功耗机制是当前小型 RTOS 所采用的通用低功耗方法,比如FreeRTOS,RTX 和 uCOS-III等。仅从字母上看,Tick 是滴答时钟的意思,less 是 Tick 的后缀,表示较少的,整体看就是表示减少滴答时钟节拍运行。在FreeRTOS系统中,当用户任务都被挂起或者阻塞时,最低优先级的空闲任务会得到执行。那么 STM32 支持的低功耗模式就可以放在空闲任务里面实现。为了实现低功耗最优设计,我们还不能直接把睡眠模式放在空闲任务就可以了。

2023-08-15 16:17:04 1821 3

原创 FreeRTOS(动态内存管理)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理)目录一、动态内存管理介绍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 非常重要的一项功能,前面章节讲解的任务创建、信号量、消息队列、事

2023-08-15 11:45:03 582

原创 FreeRTOS(任务通知)

我们知道在使用队列、信号量前,必须先创建队列和信号量,目的是创建队列数据结构,比如使用xQueueCreate() 函数创建队列,用xSemaphoreCreateBinary()函数创建二值信号量等。如果任务在等待的通知暂时无效,任务会根据用户指定的阻塞超时时间进入阻塞状态,我们可以将等待通知的任务看作。,当其他任务或者中断向这个任务发送任务通知,且任务获得通知以后,该任务就会从阻塞态中解除,这与 FreeRTOS 中内核的其他通信机制一致。任务通知是任务控制块的资源,属于任务控制块中的成员变量。

2023-08-14 23:02:23 1239

原创 FreeRTOS(软件定时器)

/定义ID号//定义软件定时器句柄。

2023-08-14 16:17:35 2345

原创 FreeRTOS(事件组)

① 事件相互独立,一个32位的事件集合(EventBitst类型的变量,实际可用于表示事件的只有低24位)用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0表示该事件类型未发生,1表示该事件类型已经发生),一共有 24种事件类型。4. 由于函数 xEventGroupSetBitsFromISR 对事件标志的置位操作是在守护任务里面执行的,如果想让置位操作立即生效,即让等此事件标志的任务能够得到及时执行,需要设置守护任务的优先级高于使用此事件标志组的所有其它任务。那样岂不是更有效率?

2023-08-14 13:50:19 779

原创 FreeRTOS(互斥信号量)

前面学过,取值只有0与1两种状态的信号量称之为二值信号量。而互斥信号量是一种特殊的二值信号量,具有防止优先级翻转的特性。

2023-08-13 19:29:44 1255

原创 FreeRTOS(计数信号量)

①取值只有0与1两种状态的信号量称之为二值信号量;取值大于1的信号量称之为计数信号量②计数信号量是一种长度大于1,消息大小为0的特殊消息队列。③计数信号量的取值也可以为1,但通常大于1,如果取值为1,相当于只有0与1两种状态,用二值信号量即可。

2023-08-13 15:54:43 686

原创 FreeRTOS(二值信号量)

当信号量被获取了,信号量值变为0;当信号量被释放了,信号量值变为1。把这种取值只有0与1两种状态的信号量称之为二值信号量。创建二值信号量时,系统会为创建的二值信号量分配内存二值信号量是一种长度为1,消息大小为0的特殊消息队列。因为这个队列只有空或满两种状态,而且消息大小为0,因此在运用时,只需要知道队列中是否有消息即可,而无需关注消息是什么。

2023-08-12 23:59:48 2096

原创 FreeRTOS(消息队列)

当有多个消息发送到消息队列时,通常是将先进入消息队列的消息先传给任务,也就是说,任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO),FreeRTOS的队列也支持后进先出原则(LIFO)。3. 消息队列还有两个函数 xQueueSendToBackFromISR 和 xQueueSendToFrontFromISR,函数xQueueSendToBackFromISR 实现的是 FIFO 方式的存取,函数 xQueueSendToFrontFromISR 实现的是 LIFO 方式的读写。

2023-08-11 14:25:48 2758

原创 FreeRTOS(调度锁,中断锁,任务锁,时间管理)

调度锁就是 RTOS 提供的调度器开关函数,如果某个任务调用了调度锁开关函数,处于调度锁开和调度锁关之间的代码在执行期间是不会被高优先级的任务抢占的,即任务调度被禁止。这一点要跟临界段的作用区分开,任务2本应该间隔100ms连续快闪,由于低优先级的任务一调用了调度锁开关函数,而且延时了5s,延时期间关闭了任务切换,在此期间,任务2不运行,结果就是任务2的指示灯间隔5s快闪10次。任务1:优先级低,启用调度锁,调度锁开关之间使用HAL_Delay延时5s,退出调度锁后,使用HAL_Delay继续延时2s。

2023-08-11 08:39:15 1479

原创 FreeRTOS( 任务与中断优先级,临界保护)

目录一、中断优先级1、NVIC基础知识2、FreeRTOS配置NVIC3、SVC、PendSV、Systick中断4、不受FreeRTOS管理的中断5、STM32CubeMX配置二、任务优先级1、任务优先级说明2、任务优先级分配方案3、中断优先级与任务优先级区别4、任务优先级修改与获取三、开关中断与临界段函数1、临界段概念2、开关中断函数3、任务代码临界段处理函数4、中断代码临界段处理函数四、优先级与临界代码编程测试①不受操作系统管理的中断设置。如下:0-4不受操作系统控制 ②获取与设置任务优先级使能 ③N

2023-08-10 17:17:02 2307

原创 FreeRTOS(任务调度)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理)单片机资源越来越丰富,加上合作式调度器的系统实时性不够好,合作式调度已经很少用了,FreeRTOS在新的版本中已不再更新抢占式调度器提供了一种多任务的的系统结构,高优先级任务可以抢占低优先级任务的CPU使用权,使得系统实时性非常好。使用抢占式调度器时,根据任务重要程度合理分配优先级,CPU会优先执行就绪列表中优先级最高的任务。时间片调度针对同优先级的任务,调度算法给同优先级的任务分配一个专门的列表,用于记录当前就绪的任务,并为每

2023-08-09 22:47:43 292

原创 FreeRTOS(任务管理的创建、删除、挂起、恢复)

函数原型:void vTaskStartScheduler( void );函数描述:函数 vTaskStartScheduler 用于启动 FreeRTOS 调度器,即启动 FreeRTOS 的多任务执行。使用这个函数要注意以下几个问题:①空闲任务和可选的定时器任务是在调用这个函数后自动创建的。②正常情况下这个函数是不会返回的。如果有返回,极有可能是用于定时器任务或者空闲任务的内存空间不足造成创建失败,此时需要加大FreeRTOS可管理的内存空间。

2023-08-09 16:24:41 1163

原创 FreeRTOS(系统配置)

因此,它特定于应用程序,而不是 FreeRTOS,并且应该位于应用程序目录中,而不是位于 FreeRTOS 内核源代码目录中。大部分配置选项在FreeRTOS.h文件中都有默认的配置,在应用时,把需要的配置选项放在FreeRTOSConfig.h文件即可。以“INCLUDE”开头的宏允许您的应用程序将未使用的实时内核组件从您的工程中移除, 这可节约嵌入式应用程序所需的任何 ROM 或 RAM。要包含 API 函数,请将宏设置为 1,要排除该函数,请将宏设置为 0。"Config"开始的宏为其他相关的。

2023-08-08 22:31:13 442

原创 FreeRTOS(vTaskList与vTaskGetRunTimeStats)

【代码】FreeRTOS(vTaskList与vTaskGetRunTimeStats)

2023-08-07 19:07:28 1104

原创 (自控原理)线性系统的频域分析法

目录一、频率特性1、频率特性的基本概念2、频率特性的几何表示方法二、典型环节与开环系统的频率特性1、典型环节2、开环对数的频率特性曲线三、稳定裕度1、相角裕度2、幅值裕度

2023-08-04 13:07:23 183

原创 (自控原理)线性系统的根轨迹法

复域法(根轨迹法)

2023-08-04 11:19:56 221

原创 (自控原理)线性系统的时域分析法

目录一、系统时间响应的性能指标1、典型输入信号2、动态性能与稳态性能二、一阶系统的时域分析1、一阶系统的数学模型2、一阶系统的单位阶跃响应三、二阶系统的时域分析1、二阶系统的数学模型2、二阶系统的单位阶跃响应3、欠阻尼二阶系统的动态过程分析4、过阻尼二阶系统的动态过程分析四、线性系统的稳定性分析1、线性系统稳定的充分必要条件2、劳斯-赫尔维兹稳定判据3、劳斯稳定判据的应用五、线性系统的稳态误差计算1、误差与稳态误差2、阶跃输入作用下的误差与静态误差系数3、扰动作用下的稳态误差性能指标:稳 准 快 一阶系统只

2023-08-04 10:24:59 213

原创 (自控原理)控制系统的数学模型

目录​​​​​​​一、时域数学模型1、线性元件微分方程的建立 2、微分方程的求解方法​编辑3、非线性微分方程的线性化二、复域数学模型1、传递函数的定义2、传递函数的标准形式3、系统的典型环节的传递函数4、传递函数的性质5、控制系统数学模型的建立6、由传递函数求微分方程三、结构图与信号流图1、结构图的等效变换和化简2、信号流图的绘制3、梅森增益公式4、闭环系统的传递函数时域(微分方程) 复频域(S域)(传递函数),传递函数反应系统的固有特性通过零极点图只能得到G1(S),无法确定开环增益K。 缺点:不能

2023-08-03 14:58:25 524

原创 (自控原理)自动控制的分类与基本要求

判断是时变时不变看的是系数,判断线性还是非线性看的是变量

2023-08-02 17:15:26 456

原创 (自控原理)自动控制的一般概念

在无人直接参与的情况下,利用控制装置,使工作机械、或生产过程(被控对象)的某一个物理量(被控量)按预定的规律(给定量)运行。

2023-08-01 12:56:46 218

STM32F103中文参考手册

STM32F103中文参考手册

2023-07-28

Linux学习手写笔记扫描件保存

Linux学习手写笔记扫描件保存

2023-06-21

空空如也

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

TA关注的人

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