通讯传输
通讯传输前言: 在现代通信系统中,通讯传输速率是一个关键的性能指标,直接影响到数据传输的效率和用户体验。本文将介绍通讯传输速率的定义、计算方法以及影响因素。 1 通讯传输速率的定义 通讯传输速率(Data Transfer Rate)是指在单位时间内传输的数据量,通常以比特每秒(bps)或字节每秒(Bps)为单位。它反映了通信系统的效率和性能。比如,常见的通讯传输速率有10 Mbps、100 Mbps、1 Gbps等。串口通讯中常说的波特率(Baud Rate)也是一种传输速率的表示方式,指每秒钟传输的符号数量。 2 通讯传输速率2.1...
CMake进阶篇(二)——搭建Qt6工程
CMake进阶篇(二)——搭建Qt6工程前言: 本篇文章探讨通过CMake搭建一个Qt6工程。 1 下载
激光雷达原理
激光雷达原理前言: 。本文介绍激光雷达原理 相关缩写: 缩写 全称 描述 dToF direct Time-of-Flight 直接测量光的飞行时间 iToF indirect Time-of-Flight 通过测量相位偏移来间接测量光的飞行时间 PLD 脉冲激光二极管 一种激光雷达发光元件 APD 雪崩光二极管 一种激光雷达感光元件 SPAD Single Photon Avalanche Diode 单光子雪崩二极管,一种激光雷达感光元件 SiPM Silicon photomultiplier 硅光电倍增管,一种激光雷达感光元件 CMOS Compound metal Oxided Semiconductor 复合金属氧化物半导体,一种摄像头感光元件 CCD Charge Coupled Device 电荷耦合器件,一种摄像头感光元件 CIS CMOS image sensor 互补金属氧化物半导体图像传感器 OPA Optical Phased Arrays 光学相控阵 FPA Focal...
c++基础篇(六)——运算符
c++基础篇(六)——运算符前言: 本篇文章介绍c++的运算符用法。 1 介绍
c++基础篇(五)——变量
c++基础篇(五)——变量前言: 本篇文章介绍c++的变量用法。 1 介绍 在 C++ 中,变量是用来存储数据的命名内存位置。每个变量都有一个类型(如整数、浮点数、字符等),它决定了变量可以存储的数据种类以及占用的内存大小。定义变量就是告诉编译器为某个名字分配一块内存空间,并指定其类型。 类型 关键字 含义 典型大小 整型 int 整数(如 -10, 0, 100) 4 字节 短整型 short 较小整数 2 字节 长整型 long 较大整数 4 或 8 字节 长长整型 long long 更大整数 8 字节 单精度浮点型 float 小数(精度约7位) 4 字节 双精度浮点型 double 高精度小数(约15位) 8 字节 字符型 char 单个字符(如 ‘a’) 1 字节 布尔型 bool 真/假(true/false) 1 字节 空类型 void 无类型(不能定义变量) —— 2 变量命名规则如下 必须以字母或下划线 _...
c++基础篇(四)——注释
c++基础篇(四)——注释前言: 本篇文章介绍c++的注释用法。 1 介绍 与c一致,c++有两种注释风格。 类型 符号 特点 单行注释 // 只作用于当前行 多行注释 /* ... */ 可跨多行,但不支持嵌套 2 单行注释 以 // 开头,从该符号开始到 本行结束 的内容都会被编译器忽略。 12// 这是一个单行注释int a = 5; // 这行代码后面也可以加注释 3 多行注释 以 /* 开始,以 */ 结束,中间的所有内容(可以跨越多行)都会被当作注释。 123456/*这是一个多行注释可以写很多行*/int b = 10; 也可以用于单行: 1/* 这也是注释 */ 还可以嵌套在代码中(但不能嵌套另一个 /* ... */ 注释): 1int /* 中间的说明 */ c = 20;
MCU进阶篇(一)——选项字节
MCU进阶篇(一)——选项字节前言: 1 介绍 本篇以STM32F103 MCU系列为例,选项字节(Option Bytes) 是STM32微控制器中一个特殊的配置区域,用于存储芯片的关键系统级配置信息。这些配置在芯片上电或复位时被读取,直接影响其硬件行为和安全特性。选项字节就是STM32芯片的一组“启动开关”或“熔丝位”(Fuse Bits),用来设置一些不能在运行时随意更改的重要参数。 2 存储 在STM32F103系列中,选项字节不是程序代码的一部分,也不是RAM中的变量,而是保存在Flash存储器中的一个受保护区域,具有非易失性(掉电不丢失)。选项字节存储在MCU片内Flash中,查看芯片数据手册,其中介绍了选项字节在内存中的存放位置。它的前面是片内Flash中的固件,后面是主内存区。 在参考手册中介绍了选项字节的大小,共计16字节。 3 定义 在官方文档 STM32F10xxx Flash memory microcontrollers...
Vim基础篇(三十一)——字符替换插件vim-clap
Vim基础篇(三十一)——字符替换插件vim-clap前言: 在linux下编程,终端最是常用的工具,将Vim和Terminal配合好使用将大大提高效率。 1 介绍 vim-clap 是一个强大的Vim插件,提供了多种功能,其中之一是字符替换功能。它允许用户在Vim中快速查找和替换文本,支持正则表达式和多文件操作,非常适合处理大量文本数据。 异步处理(Async) 所有搜索操作在后台异步执行,不会阻塞编辑器。 提供流畅的用户体验,即使在大型项目中也能快速响应。 无需外部依赖(可选) 默认使用 Vim 内置功能实现,无需安装 fzf、ripgrep 等外部工具。 可选集成 rg(ripgrep)、git 等工具以提升性能。 丰富的源(Providers) 支持多种查找模式,例如: Clap files:文件查找(支持 .gitignore) Clap git_files:Git 管理的文件 Clap grep:文本内容搜索(类似 :Ag) Clap buffers:打开的缓冲区切换 Clap marks:书签跳转 Clap...
OpenOCD基础篇(三)——擦除和读取
OpenOCD基础篇(三)——擦除和读取前言: 本篇文章介绍使用OpenOCD烧录和调试。 1 全片擦除 通过OpenOCD可以对MCU的Flash进行全片擦除,本文以STM32F103ZET6单片机为例,创建一个OpenOCD的脚本文件 jlink_swd_stm32f103_erase_flash.cfg ,内容如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081# ============================================# STM32F103ZET6 全片擦除配置文件(J-Link + SWD)# 支持无 nSRST 连接情况# ============================================# 使用 J-Link...
Vim基础篇(三十)——Debug插件vimspector
Vim基础篇(三十)——Debug插件vimspector前言: 在linux下编程,终端最是常用的工具,将Vim和Terminal配合好使用将大大提高效率。 1 介绍 vimspector 是一个为Vim和Neovim提供图形化调试功能的插件,它使得在Vim中进行代码调试变得更加直观和高效。vimspector支持多种编程语言(如Python、C/C++、JavaScript、Go、Java等),通过集成 Debug Adapter Protocol (DAP) 实现与各种调试器的通信。 多语言支持 : 借助 DAP 协议,vimspector 可以支持任何实现了对应 Debug Adapter 的语言,例如: Python(使用 debugpy ) C/C++/Rust(使用 lldb-vscode 或 gdb ) JavaScript/TypeScript(使用 vscode-node-debug2 ) Go(使用 delve ) Java、Ruby、PHP...








