- 博客(26)
- 收藏
- 关注
原创 OTA的HTTP笔记
基于 TCP 面向连接、可靠传输的特性,核心是 “请求 - 响应” 模型。HTTP/1.1 是目前应用最广泛的版本(替代 HTTP/1.0,兼容大部分场景),其设计目标是。HTTP(HyperText Transfer Protocol,超文本传输协议)是。(文件、网页、接口数据等),适配多数场景(含嵌入式 OTA 开发)。请求头是 “客户端告诉服务器的额外信息”,键值对格式(
2025-11-20 00:54:30
1110
原创 向量表偏移寄存器(Vector Table Offset Register,VTOR)
中断向量表是 MCU 中一段存储 “中断服务程序(ISR)入口地址” 的专用内存区域:当 MCU 触发中断(如定时器溢出、串口接收数据、外部引脚电平变化等)时,硬件会自动根据 “中断类型” 查找向量表,找到对应的 ISR 入口地址,再跳转到该地址执行中断处理代码。例如:STM32 芯片复位后,默认向量表存放在0x08000000 地址(Flash 起始地址),其中 “复位中断” 的向量地址固定在 0x08000004,硬件复位时会自动从该地址取指令执行。
2025-11-18 23:09:53
1058
原创 sscanf解析
sscanf() 函数为 C 程序提供了一种从字符数组读取格式化输入的方法,它非常适合解析存储在字符数组中的结构化数据。通过不同的占位符和标志,可以灵活地处理各种类型和格式的输入。在某些复杂的情况下可能需要额外的错误处理和验证逻辑。
2025-11-04 23:21:53
944
原创 环形缓冲区(ring buffer)
环形缓冲区(又称循环缓冲区、圆形队列或圆形缓冲区)是一种具有先进先出(FIFO)特性的高效缓冲区结构。尽管名称中包含"环形"概念,但实际实现上它仍是一段线性内存空间,只是通过巧妙的逻辑处理使其具有首尾相连的循环特性。生产者-消费者模型: 在多线程编程中,环形缓冲区作为共享数据结构,协调生产者和消费者的速度差异。嵌入式系统 :资源受限的嵌入式系统中,环形缓冲区因其固定大小和高效的内存利用率被广泛使用。如果存在越界读取的数据则进入,越界读取数据逻辑,通过判断起始位置序号加上实际读取数据量,是否大于缓冲区容量。
2025-10-31 21:17:58
804
原创 Modbus笔记
Modbus是一种广泛应用于工业自动化领域的串行通信协议,由施耐德电气(原Modicon公司)于1979年开发,旨在实现PLC与其他工业设备的高效通信其核心优势在于开放性、灵活性和简单性,现已成为工业设备互联的通用标准主从通讯、半双工、位于OSI模型第七层(应用层)
2025-10-24 21:40:24
917
原创 MQTT笔记
是一种面向物联网的轻量级、发布/订阅消息协议,运行在TCP/IP之上,由IBM在1999年提出,2014年成为 OASIS 标准,2016年被采纳为 国际标准。其设计目标是在低带宽、不稳定、资源受限的网络中实现可靠的消息传输。常见误解是名称含“消息队列”——MQTT并非传统消息队列,而是基于Broker的消息转发与会话机制。典型上层端口与形态包括:1883(未加密)、88838083、(MQTT over WebSocket),以及轻量变体 MQTT‑SN。
2025-10-17 20:51:45
940
原创 Xshell->MCU Ymodem协议实现
按照Ymodem协议标准是133,但是经过Xshell的传输完成会添加两个0x4F做结尾,表示传输完成。
2025-10-15 17:43:35
387
原创 malloc and free
所分配的内存来自于->堆空间(heap)堆是由用户手动分配(malloc)分配成功后会返回一个指针,最后需要进行手动释放(free)
2025-10-14 21:58:02
242
原创 上位机的方式控制总线舵机的笔记
采用纯模拟电路(比较器+功率放大器),通过持续接收50Hz PWM信号(周期20ms)控制角度输入信号与电位器反馈电压实时比较,驱动电机转动直至误差归零关键特性:需持续供电维持角度:信号中断时易受外力扳动而偏移响应慢:处理频率低(50Hz),死区大(无反应区约10°),定位精度低(±1°)抗干扰弱:易受电源噪声影响,长时间堵转可能烧毁电机典型型号:SG90、MG996R(低成本航模舵机)每个写指令都有特定的数据长度及参数不同。
2025-07-07 16:06:20
1108
原创 STM32CubeMX-DAM笔记
直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。8个DMA控制器流中的每一个都提供了源与目标之间的单向传输链路。常规类型事务:存储器到外设、外设到存储器或存储器到存储器的传输双缓冲类型事务:使用两个存储器指针进行双缓冲传输(当DMA从/向一个缓冲区读写时,应用程序可向/从另一个缓冲区读写)。
2025-06-25 15:17:08
1064
原创 MPU6050DMP库的移植和使用
/ q30格式,long转float时的除数.解释如下在MPU6050 DMP输出的四元数等数据时,使用的是q30格式,即实际值 = 原始整数值 / 2^30。这样做的目的是用整数来表示高精度的小数,便于嵌入式系统高效处理,避免浮点运算。2的30次方(1073741824)是因为用30位来表示小数部分,范围和精度都比较合适。这两个函数配合使用,将3x3方向矩阵(如)转换为DMP初始化时需要的方向标量。这样DMP就能正确理解传感器的物理安装方向,实现姿态解算的正确性。
2025-05-24 17:30:37
1236
1
原创 MPU6050陀螺仪加速度计
此寄存器用于验证设备的身份。WHO_AM_I 的内容是 MPU-60X0 的 7 位 I2C 地址的高 6 位。MPU-60X0 的 I2C 地址的最低有效位由 AD0 引脚的值决定。AD0 引脚的值不会反映在此寄存器中。确认设备地址、验证通信是否正常。
2025-05-23 18:37:07
1315
1
原创 AT24C02任意字节读写
AT24C02是一个2K位串行CMOSE2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
2025-05-06 22:23:36
842
原创 基于stm32f103c8t6使用HAL库开发电机测速-笔记
1、通过模块来驱动和控制电机(需要外接一个电压为12v,因为单靠单片机电压驱动不了电机)2、通过电机的基于读取电即接口的来判断电机的正反转,通过对产生的脉冲进行计数3、通过和相应的获得当前电机的速度。
2025-04-25 19:25:47
1309
原创 STM32CubeMX学习-RTC实验
期间遇到许多奇奇怪怪的问题,尽量不要自己编写,尽量仅操中断回调函数;原因:让TR-CLK产生1Hz的时钟频率即1s的进行计数。BCD码即用面值表示数字 比如25 表示为 0x25;BIN码即16进制表示数字;
2025-04-19 17:43:17
507
原创 STM32CubeMX-TIME-输入捕获功能-单通道测量PWM-频率+占空比
【代码】STM32CubeMX-TIME-输入捕获功能-单通道测量PWM-频率+占空比。
2025-04-05 21:40:18
260
原创 蓝桥杯第10届省赛程序设计题
比如将每次设定好的值存入M24C02-WMN6TP,然后读取。UART(目的:用于debug)主函数部分(main)效果实现和功能控制部分。可以添加一些额外功能。
2025-04-05 16:22:38
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅