- 博客(84)
- 收藏
- 关注
原创 freeRTOS知识快过
Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类操作系统。FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
2025-10-31 15:50:50
1229
原创 freeRTOS学习日记
在 FreeRTOS 中,常用的延时函数主要有两个:vTaskDelay()和 vTaskDelayUntil(),此外在使用 CMSIS-RTOS 封装层时还会用到 osDelay()(本质是对的封装)。这些函数的核心作用是让当前任务进入阻塞态(释放 CPU 资源,允许其他任务运行),等待指定时间后再进入就绪态。简单可以理解为闹钟,到达指定一段时间后,就会响铃。TSTM32芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成PWM、
2025-10-27 11:41:13
764
原创 freeRTOS学习日记
信号量(SeMaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代码段不被并发调用。信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用,然后我们的量还可以用来表示资源的数量,当我们的量只有0和1的时候,它就可以被称作二值信号量,只有两个状态,当我们的那个量没有限制的时候,它就可以被称作为计数型信号量。信号量也是队列的一种。二值信号量其实就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,我们用它来进行互斥访问或任务同步。
2025-10-24 18:48:14
872
原创 freeRTOS学习
任务可以理解为进程/线程,创建一个任务,就会在内存开辟一个空间。比如:玩游戏、陪女朋友,都可以视为任务Windows 系统中的MarkText、谷歌浏览器、记事本,都是任务。任务通常都含有While(1)死循环。队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息。为什么不使用全局变量?如果使用全局变量,免子(任务1)修改了变量a,等待树獭(任务3)处理,但树獭处理速。
2025-10-23 22:07:21
921
原创 MCU硬件学习
对于MOS管来说,g和s之间不存在通路的,他们之间仅仅存在一个寄生电容,当给gate施加高电平的时候,除了一开始给这个寄生电容充电的电流外,并不存在其他的电流,只要维持gs电压差,MOS管就可以打开,因为这个寄生电容的存在,即便我撤走了IO口的高电平,你会发现灯泡依然是亮着的,直到这个电容上的电荷慢慢放光mos管才会关闭,这就是MOS管被称为电压控制器的原因了。横坐标是gs的电压差,纵坐标是电阻的值,当gs的电压小于一个特定值的时候,电阻基本上是无穷大的;输出为低的时候,就等于断开的开关。
2025-10-20 16:16:48
538
原创 fly飞控原理图讲解
U14 TC3608H(升压 IC)把 VBAT(一般锂电)升压到 +5V(有感器 L2=22µH、C111/C112 电容等),然后 AMS1117-3.3(U9)把 +5V 线稳压到 +3.3V。:U8 是 MPU-6050,SCL/SDA 两路有 4.7k 上拉到 +3.3V(R22、R23),还有 100nF 旁路电容(C99、C100),以及 C101 = 2.2nF(可能用于额外滤波/旁路)。用示波器看 +3.3V 及 +5V 的纹波(特别是开关转换时),若纹波大,可能影响 IMU/nRF。
2025-10-19 23:40:19
992
原创 C++学习日记
1.3.2类模板与函数模板区别类模板与函数模板区别主要有两点:1.类模板没有自动类型推导的使用方式2.类模板在模板参数列表中可以有默认参数。
2025-10-19 21:55:01
380
原创 C++ 学习日记
typename----表面其后面的符号是一种数据类型,可以用class代替。len是读写的字节数。:用二进制方式写文件 ios::binary | ios:out。建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个。T ----- 通用的数据类型,名称可以替换,通常为大写字母。文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。二进制方式写文件主要利用流对象调用成员函数write。读文件与写文件步骤相似,但是读取方式相对于比较多。以二进制的方式对文件进行读写操作。
2025-10-17 00:06:38
879
原创 单片机学习日记
外设需要驱动的时候用复用推挽输出模式。在使用时,根据时钟树中对应APB的定时器时钟线的频率,结合预分频器以及自动重装载寄存器,我们就可以设置出需要的PWM频率(周期),比较寄存器与自动重装载寄存器的比值就是PWM的占空比。当然如果换到PWM模式2或者修改输出极性情况会有所不同。在代码中我们使用HALTIM_PWM_Start函数可以启动PWM输出,当然也有对应的HALTIM_PWM_Stop函数停止PWM输出;
2025-10-11 00:03:23
471
原创 单片机学习日记
DMA = MCU 的自动搬运工,减少 CPU 负担。用途:ADC 自动采集、串口高速通信、波形发生器、数据搬移。优点:快、省 CPU,适合大数据量场景。缺点:配置比普通外设复杂一些,调试要小心(地址、长度、溢出)。一句话:知而不行,是为不知;行而不知,可以致知。NVIC = 中断的大脑,负责使能、优先级、仲裁。它让 MCU 在“多任务”里有序地响应各种外设。嵌套特性保证高优先级事件能插队,保证实时性。
2025-09-25 00:08:44
882
原创 C++学习日记
解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果。类名 ( ) { }也是两个非常重要的安全问题。
2025-09-18 22:39:11
206
原创 嵌入式学习日记
小tips:在程序烧入不进去的时候不妨试一试长按复位按键后点击烧入,然后松开复位按键,这样程序可能就烧录进去了。设置FLASH_CR中的LOCK位锁住FPEC和FLASH_CR。在FLASH_KEYR先写入KEY1,再写入KEY2,解锁。错误的操作序列会在下次复位前锁死FPEC和FLASH_CR。复位后,FPEC被保护,不能写入FLASH_CR。RDPRT键=OxO0OOOOA5。基地址:0x1FFF F7E0。基地址:0x1FFF F7E8。IWDG和WWDG对比。
2025-09-06 11:07:21
1152
原创 嵌入式学习日记
STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担可配置8位/16位数据帧、高位先行/低位先行时钟频率:fpcLk/(2,4, 8,16,32, 64,128, 256)支持多主机模型、主或从操作可精简为半双工/单工通信支持DMA兼容I2S协议STM32F103C8T6硬件SPI资源:SPI1、SPI2SPI框图:SPI 是同步串行、主从、全双工接口。
2025-09-04 22:39:03
1063
原创 SPI通讯协议
CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据。CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据。CPOL=O:空闲状态时,SCK为低电平。CPOL=1:空闲状态时,SCK为高电平。交换一个字节(模式1)交换一个字节(模式2)
2025-09-03 23:39:16
610
原创 ST-LINK连接单片机烧入失败的解决办法
如下图所示这个很重要的,如果是显示这个,No target connected着就是没有。点击打开后,把ST-Link插拔一下插上后点击YES就开始更新驱动了。要是这个两个方法都不行,有可能就是你的芯片烧了。你先点击这个魔术棒看看里面的设计。
2025-09-02 15:32:01
250
原创 STM32学习日记
MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景。MPU6050这个芯片上电是默认睡眠模式得sleep模式,需要先解除睡眠模式。3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度。3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度。
2025-09-01 22:53:04
1043
原创 英伟达显卡驱动更新失败解决办法
在这里找到乱码文件夹就行C盘 -> ProgramData -> NVIDIA Corporation -> Downloader这里找到乱码文件夹,这就是你下载好的文件。你在安装驱动时候出现这种错误,不妨试一试我这个方法。
2025-09-01 09:43:45
655
原创 嵌入式学习日记
查看原理图,电路非常简洁,通常只有一个接收管和一个电阻。输出端连接到MCU的。(例如,无遮挡时2.5V,半遮挡时1.2V,全遮挡时0.1V)。输出端直接连接到MCU的IO口。让系统正常工作,将万用表调到电压档,测量原。:查看你的原理图,找找有没有。这种一般来说就是数字信号。(如PA0, PA1)。(或VCC)两个值之间。下面的是模拟信号判断。同样操作,观察波形。
2025-08-30 11:45:02
325
原创 DMA学习
当传输计数器等于零,且没有自动重装时,这时无论是否触发,DMA都不会再进行转运了。此时就需要DMA_Cmd,给DISABLE,关闭DMA,再为传输计数器写入一个大于零的数。再DMA_Cmd,给ENABLE,开启DMA。使用STM32的ADC模块,配合DMA实现多通道(4通道)模拟信号的自动采集,并将转换结果实时显示在OLED屏幕上。通过DMA传输,减少了CPU的干预,提高了系统的效率。注意一下:写传输计数器时,必须要先关闭DMA,再进行,不能在DMA开启时,写传输计数器,这是手册里的规定。
2025-08-27 23:05:39
715
原创 Windows注册表
注册表的位置在C盘具体位置如下图:我在安装Solid Works的时候会遇到的问题,如果你打开软件遇到这种问题:那么你的可以这样试一下:1先打开电脑C盘文件夹里的Solid Works Flexnet _Server文件夹,如下图:2.然后先取消注册;如下图:以管理员身份运行取消注册程序然后再是点击注册程序像这样之后就OK了。下一个问题就是这个1.你需要打开任务管理器:Ctrl+Shift+Esc打开任务管理器,找到这个SOLIDWORKS Background Downloader把它给禁用掉就行。还有一
2025-08-26 13:31:03
364
原创 定时器中断学习汇总
TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型Encoder Interface编码器接口。
2025-08-22 15:43:47
859
原创 指针的应用学习日记
指针(Pointer)是C语言的一个重要知识点,其使用灵活、功能强大,是C语言的灵魂。指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问。计算机的存储机制一般是以小端进行存储,数组的存储必须是连续的。指针的加加减减一般用在数组方面。1. 把内存想对了:地址 + 类型 = 解释方式地址(address)是一个无符号整数,指向内存中某个字节的“门牌号”。类型(type)告诉编译器“这堆字节该按什么格式解释”,并决定了指针的步长、对齐、解引用后得到的对象类型等。
2025-08-19 23:36:13
1075
原创 STM32单片机学习日记
需要和一个远程控制器通信,普通 UART 只能跑 2~3 米就容易出错;RS485 不是协议,而是一个抗干扰强、支持远距离和多设备的串口电气标准。防止总线上没人发信号时,A、B 处于悬空导致误判,需要加上拉/下拉电阻。它规定了电压、电流、差分传输方式等物理特性。使用两根信号线(A 和 B),电压差代表逻辑 0/1。好处:抗干扰能力强,能在电磁噪声大的环境下稳定通信。(如 MAX485、SP3485、SN75176)。:规定了电信号怎么在长距离、多人通信的线路上跑。工业控制(PLC、传感器网络、变频器)
2025-08-17 22:30:07
929
原创 电子电路学习日记
这里的表示,而在很多国产 EDA 软件(比如立创EDA、Altium 的一些中文封装库)里用来标注代表(英文 Fine tolerance)。→ ±5%→ ±10%→ ±20%MP2451 简介MP2451 是 Monolithic Power Systems(MPS)推出的一款高频率(2 MHz)、最大输出约 0.6 A 的降压稳压器,输入电压范围从 3.3 V 至 36 V,广泛用于汽车、工业、分布式电源等领域。
2025-08-14 22:55:44
1367
原创 串口通信学习
USRTUSART框图STM32的外设引脚这是USART的基本结构。数据帧,八位是这个公式还是很重要的!如果在编辑器里面使用printf打印汉字的话,会出现乱码的话,,就在keil5里面这里加上这个这个概念在不同领域有不同的含义,但核心思想是一样的:它指的是,数据包包含通信所需的。1.“HEX”是什么意思?是的缩写。在计算机和嵌入式通信中,二进制数据通常用十六进制表示,因为它更简洁、人类更容易阅读。例如:1010 11110xAF2.“数据包”是什么意思?
2025-08-12 23:26:36
969
原创 电子电路学习日记
STM32 本身是逻辑电平,需要配套**CAN收发器芯片(如 TJA1050、SN65HVD230)**将其转换为差分信号。🧰 五、CAN vs UART/I2C/SPI 区别(通信协议对比)空闲状态:CAN_H = CAN_L ≈ 2.5V(差分为0)主机 ────────> RTS = 1 ── 请求发送。从机 <──────── CTS = 1 ── 同意发送。:CAN_H > CAN_L(如 3.5V/1.5V):CAN_H ≈ CAN_L(如 2.5V)串口通信(UART)相关内容,进一步学习。
2025-07-30 08:19:55
1169
原创 电子电路设计学习
在日常PCB设计中,在25度时,对于铜厚为10z(盎司)的导线,10mil线宽能够承载0.65A电流,40mil线宽能够承载2.3A电流。DC/DC转换器一种是开关电源稳压器,指利用电容、电感的储能的特性,通过可控开关(MOSFET等)进行高频开关的动作,将输入的电能储存在电容(感)里,当开关断开时,电能再释放给负载,提供能量。,举例如下:对于各种接口、按键和排针,需要放在板子边缘,方便插接,对于屏幕和主控芯片等,一般放在板子。是一种在电源电压或者负载电流发生变化的时候,依然能够提供稳定输出电压的元件。
2025-07-27 23:31:51
878
原创 新手引导制作
先逐个解决掉每一个表格是干什么的吧_beans_.xlsx是一个类似于示例表的样子_enums_.xlsx是一个枚举类型的表格_tables_.xlsx是一个。
2025-07-25 11:14:05
1528
原创 游戏开发日志
我来为您逐行详细讲解这个 `ViewMgr.cs` 文件。这是一个Unity游戏中的视野管理系统,用于优化游戏性能。## 文件结构概览这个文件主要包含以下几个部分:1. 数据结构和接口定义2. 视野管理器 `ViewMgr` 类3. 工具类 `ViewTools`让我逐行为您讲解:## 1. 命名空间和引用```1:7:Scripts/WeiLai/Mgr/ViewMgr.csusing System.Collections.Generic;using UnityEngine;using Wei
2025-07-19 23:17:03
947
原创 Luban配置教程
用于描述游戏或软件中的枚举值(如奖励类型、格子类型等),可能是配合自动化工具(如 Excel 转代码/JSON 的导出工具)使用的。
2025-07-15 23:04:05
1618
原创 游戏开发日记7.12
在 Unity 中,协程是一种“异步执行机制”,允许你暂停一个函数的执行,并在后续某个时间点再继续执行。// 暂停2秒这段代码中,“Step 1”会立刻执行,然后暂停2秒后再打印“Step 2”。来启动它。
2025-07-12 22:51:49
1058
原创 C#学习日记
一、基础概念回顾:值类型变量,通常分配在。intfloatcharboolenum自定义结构体引用类型变量,实际数据位于。string(虽然看起来像值,但本质是引用类型)数组、类class接口interface、委托delegate📌 结构体(struct)是值类型,类(class)是引用类型。可以参考下面这篇博客二、如何判断类型是值类型还是引用类型F12查看类型定义,是struct就是值类型,是class就是引用类型。new三、变量生命周期临时变量。
2025-07-11 14:02:15
798
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2