- 博客(92)
- 收藏
- 关注
原创 天线知识点
1. 电压驻波比在天线测试中,天线馈线我们知道,,而,负责把信号传输到天线,或者把天线接收到的信号传回来。当发射机产生的信号通过馈线传输到天线时,线,然后被天线发射出去,没有任何信号反射回来。这时候,,就好像高速公路上的车能毫无阻碍地开到目的地,没有车掉头往回跑。但在实际情况中,很难达到这种完美状态。因为天线和馈线的特性很难完全匹配,就像不同车道的宽度、坡度可能不一样,这就会导致。
2025-10-19 14:25:17
276
原创 GDB调试
关系:CMake 可以生成 Makefile,Makefile 是make工具的输入文件。选择:简单项目可用 Makefile,跨平台或大型项目优先用 CMake。
2025-08-31 17:29:29
843
原创 RS232\485
选 RS232 的场景近距离点对点通信(如 PC 与单片机开发板调试、本地设备配置);对通信速率要求不高(≤20kbps),且环境干扰小(如实验室、办公室)。选 RS485 的场景工业现场多设备组网(如传感器阵列、PLC 控制);传输距离超过 15 米(如车间到控制室、楼宇间互联);环境干扰强(如电机、高压设备附近)。
2025-08-31 17:18:42
568
原创 sizeof和strlen的区别
'\0'作为结尾的终止符,算一个字节。空字符 '\0' 结尾的字符串的长度。运算符和关键字,但不是函数。变量所占用的字节数,
2025-08-27 19:56:26
235
原创 inline内联函数
inline是让编译器把函数 "展开" 到调用处的建议,目的是用代码体积换执行速度适合简短且频繁调用的函数。inline会让编译器会尝试把函数代码直接 "复制粘贴" 到调用它的地方,而不是跳转到函数定义处执行。
2025-08-26 21:01:23
394
原创 多路复用IO
比如一个装电池的土壤湿度传感器,要同时监控 “湿度数据” 和 “上位机指令(比如让它改采样频率)”。用 select 设置 1 秒超时:CPU 每 1 秒醒一次,先看有没有湿度数据或指令 —— 有就处理,没有就继续睡;结果:CPU 一天里 90% 的时间都在睡觉,只有 10% 的时间在处理数据,电池能用半年;要是用轮询:CPU 每秒得问 100 次 “有数据吗”“有指令吗”,99% 的时间在做无用功,电池可能 10 天就没电了。
2025-08-26 10:19:32
858
原创 const(常量)
const允许指定一个语义约束,会强制实施这个约束,允许程序员告诉编译器。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。
2025-08-22 15:19:55
400
原创 TCP/IP、socket、http
简单来说,socket 通讯就是两个(或多个)节点之间通过网络进行数据交换的过程,其中一个节点发起请求,另一个节点响应请求,它们通过 socket 接口实现数据的发送和接收。在 socket 通讯中,"节点" 通常指参与网络通信的端点,也就是进行数据发送和接收的实体。每个节点在网络中都有唯一的标识,由。,这两者共同构成了网络中唯一标识一个通信端点的 “地址”,确保数据能够准确地在两者之间传输。在 socket 通讯中,客户端和服务器。端口号的作用是区分同一设备上的不同服务。IP的作用是是定位网络中的设备。
2025-08-12 13:34:44
317
原创 关于海思的内核
从 SPI Flash 地址 0x1E00000 读取 0x100000(1MB)数据到内存地址 0x82000000(读取 logo 分区内容)3. saveenv:将上述设置的环境变量(bootargs 和 bootcmd)保存到 Flash 中,确保下次启动时仍能生效。3. rtoofs 20mb:用于存储系统运行所需的文件和数据,为系统提供文件管理等功能。:启动视频层(参数包含缓冲区地址和 1920x1080 分辨率):JPEG 数据地址(logo 数据存放地址):JPEG 数据大小(1MB)
2025-08-11 18:21:20
515
原创 stdin、stdout 、stderr
是三个标准的输入输出流,用于程序与外部环境(如终端、文件等)进行数据交互。它们本质上是预定义的文件指针(
2025-08-05 14:01:38
322
原创 查找 / 比较 (字符串或二进制)
strstr是 “字符串专属查找工具”,依赖\0识别字符串边界,适合纯文本处理。memmem是 “通用内存查找工具”,不依赖\0,通过显式长度参数控制搜索范围,适合二进制数据或特殊字符串。在解析协议(如之前提到的 GNSS 报文)时,memmem更常用,因为协议数据可能包含\0或二进制内容,无法用strstr正确处理。// 1. 查找协议头g_gnss_msg_buf_process + index, // 起始地址g_gnss_msg_len_process - index, // 剩余长度。
2025-08-03 21:57:11
250
原创 cpy相关函数区分
功能:将 指向的字符串(包含 )完整复制到 ,直到遇到 的 为止。 特点: 不检查 缓冲区大小,若 长度超过 容量,会导致缓冲区溢出(覆盖其他内存)。 自动复制 的结束符 到 。 适用场景:仅在确定 长度小于 时使用(如常量字符串复制)。2. :有限制的复制(部分安全) 函数原型: 功能:最多复制 个字符从 到 。 特点: 限制复制长度为 ,避免缓冲区溢出(相比 更安全)。 关键缺陷: 若 长度 >= ,
2025-08-03 21:44:02
477
原创 STM32启动流程及RTOS多任务调度与切换流程
我们要实现Bootloader区代码在运行中跳转去运行APP区代码,实现的效果应该和上电复位后直接运行APP区代码效果一样,所以通用寄存器R0-R12,存储返回地址R14 等都不需要保护起来,我们只需要关心修改。当你在 C 语言中调用一个函数(包括通过函数指针调用)时,编译器会生成对应的汇编指令,这些指令的最终目的就是修改 PC 寄存器的值,让其指向函数的入口地址。)并将 PC(程序计数器)设置为该值,是实现程序从当前区域(如 B 区)跳转到 A 区执行的核心操作。B区跳到A区是单向的,无法回头。
2025-07-28 19:30:58
1115
原创 xmodem
接收方对收到的所有原始数据重新计算 CRC,若结果与收到的校验值一致,则认为数据未被篡改或出错如果不一致,则可确定数据在传输 / 存储过程中出现了错误。CRC(循环冗余校验码)校验的核心原理就是对输入的所有数据进行计算,生成一个固定长度的校验值。== 一字节报头+一字节包序号+一字节反包序号+128字节数据+2字节CRC校验。发送方将原始数据(所有字节)按 CRC 算法计算出校验值,随数据一起发送。
2025-07-24 16:57:35
161
原创 联合体知识点
应用场景:接收到16位数据需通过IIC转发,但是IIC一次收发8位数据,所以需要将16位拆为两个8位分别发送。联合体(union)和结构体(struct)的核心区别在于。
2025-07-24 16:33:12
298
原创 文件 I/O 于标准 I/O
1. 低级 I/O 直接与操作系统内核交互,无缓冲区(默认),提供更精细的控制能力,速度快。一般用于操作设备文件 /dev/...2. 标准 I/O 基于低级 I/O 封装,提供缓冲区机制和格式化操作,可以移植性高。一般用于操作普通文本文件。低级 I/O 函数标准 I/O 对应函数主要特点open()的flags参数更丰富(如O_RDONLYO_WRONLY等),mode指定文件权限;fopen()的mode是字符串(如 "r"、"w" 等)read()返回实际读取的字节数;fread()
2025-07-24 16:07:24
446
原创 关于全局标志位记录状态变化
此时可以发现,BootStateFlag 同时包含了两种状态。这种方式可以高效地在一个变量中同时记录多个独立的状态,且操作时不会影响其他已设置的标志位。
2025-07-24 10:04:31
145
原创 关于单片机的无符号整型uint32_x
足以容纳 OTA 过程中所有可能的状态(如升级阶段、错误类型、校验结果等)。(1 个字符用 4 字节存储),完全没有必要。,最多只能表示 8 个状态,可能不够用。是 “标志位变量”,通常用于。),而字符串在计算机中本质是。(通过位运算实现)。
2025-07-23 10:07:54
348
原创 SPI的收发(W25Q64外部flash 和 内部flsah)
1. SPI读:通过循环调用SPI1_ReadWriteByte,将wdata数组中的数据逐个发送。读数据时,从机返回的字节通常无意义,因此不处理返回值。因此 “发送” 和 “接收” 是绑定的(即使只需要读或写,也必须进行双向操作)。串口和SPI为全双工模式,独立收发线,默认支持同时双向传输。IIC为半双工,同一时刻只能单向传输。,SPI的收发类似于一个轮盘操作,(不影响从机输出)。
2025-07-22 16:47:01
218
原创 指针,与数组,与函数
这样修改后发现两个打印的地址差了四个字节,因为这里地址取的是(*p)的地址,也就是变量a的起始地址,即a[0]的地址。p+1改变了指向的地址,即偏移4个字节(int),即a[1]的地址。两个打印相同,皆为指针p的地址。因为p+1改变的是p存储的内容跟,即它指向的地址。指针的+ - 操作改变的是指针指向的地址,而不是指针本身。3.a的首地址+8字节偏移量(数组整体字节大小)输出结果:1.a的首地址,&a[0]2.a的第二个地址,&a[1]
2025-07-22 10:49:07
190
原创 iic子系统和时序
2. 确保在SCL为高电平时,SDA为稳定的低电平。应答信号:1. 第九个时钟脉冲前将SDA拉低。数据和应答信号都规定。要不然容易被误认为起始或停止信号。
2025-07-21 18:32:05
227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅