基于OpenMV+STM32+OLED与YOLOv11+PaddleOCR的嵌入式车牌识别系统开发笔记
基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记
- 基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记
- 系统架构全景
- 一、实物演示
- 二、OpenMV端设计要点
- 1. 硬件配置优化
- 2. 智能帧率控制算法
- 3. 数据传输协议设计
- 三、PyTorch后端核心实现:YOLOv11与PaddleOCR的技术整合
- 1. YOLOv11:高性能目标检测引擎
- 2. PaddleOCR:端到端文本识别解决方案
- 3. YOLOv11与PaddleOCR的协同流程
- 4. 性能优化策略
- 5. 实际案例参考
- 6. 服务端加速技巧
- 7. Flask API设计
- 四、关键技术突破
- 1. 模型轻量化实践
- 2. 零拷贝数据传输
- 3. 异常恢复机制
- 五、性能实测数据
- 端到端延迟分析
- 识别准确率对比
- 六、项目洞见与反思
基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记
系统架构全景
一、实物演示
主要是通过OpenMV端收集得到图像,通过wifi模块将数据传递给以PyTorch为基础的YOLOv11+Paddleocr进行数据处理,计算得到车牌号后,将得到返回的数据后再OLED上进行显示,实物如下图所示。(关于车牌号识别的项目在我的另一篇博客里https://blog.csdn.net/weixin_46221106/article/details/147423629?spm=1001.2014.3001.5501)
基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记
二、OpenMV端设计要点
1. 硬件配置优化
# 关键硬件参数配置
sensor.set_windowing((240, 240)) # 限定ROI区域
sensor.set_contrast(3) # 增强对比度
sensor.set_saturation(-2) # 降低饱和度
pyb.LED(1).on() # 补光灯控制
2. 智能帧率控制算法
# 动态帧率调节(根据网络延迟)
def adaptive_framerate():base_fps = 15ping_time = network.ping()if ping_time > 300: # 高延迟模式return max(5, base_fps * 0.3)elif ping_time > 100: # 中等延迟return max(10, base_fps * 0.6)else: # 低延迟return base_fps
3. 数据传输协议设计
// Protobuf协议定义(比JSON节省40%带宽)
message FrameData {bytes jpeg_data = 1; // JPEG压缩图像uint32 frame_id = 2; // 帧序列号 fixed32 timestamp = 3; // 采集时间戳LocationInfo gps = 4; // GPS数据
}
三、PyTorch后端核心实现:YOLOv11与PaddleOCR的技术整合
在PyTorch后端实现中,YOLOv11与PaddleOCR的结合形成了从目标检测到文本识别的完整流程。以下是两者的核心特点及协同工作逻辑:
1. YOLOv11:高性能目标检测引擎
YOLOv11作为Ultralytics团队推出的最新目标检测模型,在架构设计和训练策略上进行了多项创新:
- 多任务支持:不仅支持目标检测,还扩展至实例分割、姿态估计等任务,通过统一的框架实现多模态处理。
- 轻量化优化:通过模型剪枝与量化技术,参数量比YOLOv8减少22%,推理速度提升30%,适用于边缘设备部署(如Jetson系列)。
- 小目标检测增强:针对遥感图像等场景,通过新增160×160尺度检测层、EIoU损失函数及多尺度注意力机制,显著提升小目标检测精度(mAP@0.5提升至0.576)。
- 训练效率:支持多GPU并行训练,单批次处理256张图像,结合动态数据增强策略(如Mosaic增强),缩短收敛时间。
典型应用场景:
车牌检测、工业缺陷定位(如钢材表面缺陷检测),或火灾监测中的火焰/烟雾动态追踪。
2. PaddleOCR:端到端文本识别解决方案
PaddleOCR是百度开源的OCR工具库,以其轻量化和多语言支持著称:
- 超轻量级模型:检测模型(4.1M)+识别模型(4.5M)总大小仅8.6M,支持中英文、竖排文本及长文本识别。
- 多模态信息融合:结合LayoutXLM等模型,通过视觉、布局、文本特征融合提升关键信息抽取(KIE)精度,如身份证字段结构化提取。
- 训练灵活性:支持自定义数据集训练,提供PP-OCRv3预训练模型,通过UDML知识蒸馏策略优化模型性能,200~300张标注数据即可微调垂类场景模型。
- 部署友好:支持ONNX、TensorRT等格式导出,适配边缘计算设备,单帧文本识别时间<50ms。
典型应用场景:
车牌号识别、文档关键信息抽取(如发票、车票),或结合ADB实现移动端自动化搜题。
3. YOLOv11与PaddleOCR的协同流程
在车牌识别系统中,两者分工明确:
- 目标检测阶段:YOLOv11定位图像中的车牌区域,通过改进的特征金字塔网络(如BiFPN)精准框选倾斜或遮挡车牌。
- 文本识别阶段:截取的车牌区域输入PaddleOCR,通过CRNN+Attention模型识别字符,并结合先验规则(如省份字符校验)纠正常见OCR错误。
- 结果融合:结构化输出车牌号、类型(普通蓝牌/新能源车牌)及置信度,通过Flask API返回至前端。
4. 性能优化策略
- 模型加速:YOLOv11使用TensorRT加速,PaddleOCR通过模型量化(INT8)降低计算负载。
- 数据增强:YOLOv11引入时序分析机制处理动态目标,PaddleOCR采用合成数据增强(如字体渲染、背景噪声模拟)提升泛化能力。
- 异常处理:设计三级重试机制(指数退避策略)保障服务稳定性,支持网络中断时的本地数据缓存。
5. 实际案例参考
- 火灾监测系统:YOLOv11检测火焰/烟雾,PaddleOCR识别消防标志文本,实现多模态预警。
- 工业质检:YOLOv11定位钢材缺陷,PaddleOCR读取产品编号,形成全自动化质检流水线。
通过两者的深度整合,系统在保持高实时性的同时(端到端延迟<200ms),实现了复杂场景下的鲁棒性,为智能安防、工业自动化等场景提供了可靠的技术支撑。
6. 服务端加速技巧
优化手段 | 效果提升 |
---|---|
TorchScript序列化 | 推理速度↑30% |
TensorRT转换 | GPU利用率↑50% |
异步批处理队列 | 吞吐量↑400% |
7. Flask API设计
@app.route('/detect', methods=['POST'])
def detect_endpoint():# 内存优化:使用生成器处理流数据stream = (request.stream.read(1024) for _ in iter(int, 1)) data = b''.join(stream)# GPU异步处理task = executor.submit(process_frame, data)# 实时进度反馈def generate():while not task.done():yield json.dumps({"status": "processing"})result = task.result()yield json.dumps(result)return Response(generate(), mimetype='application/json')
四、关键技术突破
1. 模型轻量化实践
- 通道剪枝:移除20%冗余通道
- 8位量化:模型体积缩小4倍
- 自适应分辨率:根据车牌大小动态调整输入尺寸
2. 零拷贝数据传输
# OpenMV端内存映射优化
img = sensor.snapshot()
buffer = img.bytearray() # 直接访问底层缓冲区
send_data(buffer) # 避免内存复制# 服务端GPU直接存取
cuda.memcpy_htod_async(gpu_buffer, host_buffer, stream)
3. 异常恢复机制
# 三级重试策略
def safe_send(data):retries = 0while retries < 3:try:return requests.post(API_URL, data=data)except (Timeout, ConnectionError):retries +=1time.sleep(2**retries) # 指数退避enter_safe_mode() # 切换本地缓存模式
五、性能实测数据
端到端延迟分析
阶段 | 耗时(ms) | 优化手段 |
---|---|---|
图像采集 | 32 | ROI限定 |
本地预处理 | 15 | SIMD加速 |
网络传输 | 68 | Protobuf压缩 |
模型推理 | 42 | TensorRT加速 |
结果回传 | 28 | Gzip压缩 |
识别准确率对比
场景 | 传统方法 | 本系统 |
---|---|---|
正常光照 | 82.3% | 96.7% |
夜间低光照 | 41.5% | 83.2% |
倾斜车牌(>30度) | 23.8% | 75.4% |
六、项目洞见与反思
-
边缘-云平衡之道:在本地做智能预筛选(如车牌定位),云端执行复杂OCR,实现精度与延迟的最佳平衡
-
模型部署陷阱:发现PyTorch默认的interpreter模式在ARM平台有20%性能损失,改用ONNX Runtime后显著改善
-
协议设计哲学:采用向前兼容的二进制协议,通过version字段实现无缝升级
-
硬件限制突破:通过C++扩展实现OpenMV的NEON指令加速,使图像预处理速度提升3倍
本文融入了实际开发中获得的宝贵经验,特别是针对嵌入式设备与云端协同AI系统的优化策略。代码示例经过简化,完整实现需考虑线程安全、内存管理等工业级要求。
相关文章:
基于OpenMV+STM32+OLED与YOLOv11+PaddleOCR的嵌入式车牌识别系统开发笔记
基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记 基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记系统架构全景 一、实物演示二、OpenMV端设计要点1. 硬件配置优化2. 智能帧率控制算法3. 数据传输协议设计 三、PyTorch后端核心实现:YOLOv11与PaddleOCR的…...
当JIT遇见K8s
目录 一、技术融合背景:从静态架构到动态生态的范式重构 1.1 动态编译技术的三次进化浪潮 1.2 容器编排系统的动态特性解剖 弹性伸缩的数学建模 服务质量(QoS)的编译场景适配 硬件拓扑感知的编译优化 二、关键技术挑战与突破性解决方案…...
单片机-89C51部分:4、固件烧录
飞书文档https://x509p6c8to.feishu.cn/wiki/M00gwFX3WilLe0kiAmBcPBUsnLc 接线 通过USB线把开发板和电脑连接起来,如果电脑没有安装过USB转串口驱动,在设备管理器中就找不到COM口,而且会有驱动提示叹号,我们可以下载下方驱动安…...
7.13 GitHub Sentinel全链路测试实战:自动化框架+零误差传输,QPS提升6倍!
GitHub Sentinel全链路测试实战:自动化框架+零误差传输,QPS提升6倍 GitHub Sentinel Agent 用户界面设计与实现 关键词:前后端联调测试、数据传输验证、接口稳定性测试、命令行工具测试、自动化测试框架 测试前后端功能与数据传输稳定性 1. 全链路测试策略设计 采用分层…...
stm32之EXIT外部中断详解
目录 1.引入: STM32F1031.1 中断路径上的3个部件1.2 STM32F103的GPIO中断1.1.1 GPIO控制器 -- AFIO1.1.2 EXTI1.1.3 NVIC1.1.4 CPU1. PRIMASK2. FAULTMASK3. BASEPRI 1.3 中断执行流程 2.旋转编码器介绍3.实验3.1 EXIT3.1.1 结构体3.1.2 函数 3.2 NVIC3.2.1 结构体3.2.2 函数 3…...
STM32 开发 - stm32f10x.h 头文件(内存映射、寄存器结构体与宏、寄存器位定义、实现点灯案例)
概述 STM32F10x.h 是 STM32F1 系列微控制器的核心头文件,提供了所有外设寄存器的定义和内存映射 一、内存映射 #define PERIPH_BASE ((uint32_t)0x40000000)#define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE 0x…...
UniApp 的现状与 WASM 支持的迫切性
一、UniApp 的跨平台优势与性能瓶颈 UniApp 凭借“一次开发,多端发布”的核心理念,已成为跨平台开发的主流框架之一。然而,随着移动应用场景的复杂化(如 3D 渲染、音视频处理、AI 推理),传统的 JavaScript…...
Prometheus、Zabbix和Nagios针对100个节点的部署设计架构图
一、Prometheus 架构图(联邦集群+分布式存储) graph TD;subgraph 全局监控层GlobalProm[Prometheus Server] -->|联邦查询| RegionalProm1[区域Prometheus]GlobalProm -->|联邦查询| RegionalProm2[区域Prometheus]GlobalProm -->|联邦查询| RegionalProm3[区域Pro…...
坚果派已适配的鸿蒙版flutter库【持续更新】
坚果派已适配的鸿蒙版flutter库 序号原仓版本适配仓文章解读是否完成1https://pub.dev/packages/fluttertoast8.2.12https://gitcode.com/nutpi/FlutterToasthttps://www.nutpi.net/thread?topicId1575是2https://pub.dev/packages/flutter_udid4.0.0https://gitcode.com/nut…...
代码随想录打卡|Day28 动态规划(理论基础、斐波那契数列、爬楼梯、使用最小花费爬楼梯)
动态规划 Part01 理论基础 代码随想录讲解链接 视频讲解链接 斐波那契数 力扣题目链接 代码随想录链接 视频讲解链接 题目描述: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一…...
《USB技术应用与开发》第四讲:实现USB鼠标
一、标准鼠标分析 1.1简介 1.2页面显示 其中页面显示的“”不用管它,因为鼠标作为物理抓包,里面有时候会抓到一些错误,不一定是真正的通讯错误,很可能是本身线路接触质量不好等原因才打印出来的“”。 1.3按下鼠标左键 &#x…...
elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
前言 在公司部elk的时候发现kibana的web界面一直很卡,数据量为0也会很卡,es群集状态正常,资源足够。 报错信息 [2025-03-17T09:54:50.19400:00][INFO ][status] Kibana is now available (was degraded) [2025-03-17T09:55:03.28000:00][I…...
2025.4.26总结
今天把马良老师的《职场十二法则》看完后,感触极大,这们课程就是一场职场启蒙课。 虽然看过不少关于职场的书籍,但大多数是关于职场进阶,方法方面的。并没有解答“面对未来二三十年的职场生涯,我该怎么去看待自己的工…...
一、UI自动化测试01--认识和元素定位方法
目录 一、自动化测试1. 自动化应用场景2. ⾃动化测试的优缺点3. ⾃动化测试的分类 二、UI ⾃动测试1. 适合使用的项目2. 实现时机3. 常⻅的UI⾃动化测试⼯具4. Selenium 框架5. Web ⾃动化环境部署6. Web ⾃动化基本代码 二、元素定位1. 浏览器开发者⼯具⽅法1: 直接获取信息⽅…...
目标检测原理简介
目标检测是一类计算机视觉任务,简单来说,目标检测可被定义为在计算机中输入一张图像,计算机需要找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,如图一所示。目标检测是计算机视觉领域的核心问题之一,相较于最原始的将整张图片分类为某一类别,目标检测不光可…...
软件设计原则
开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,需要使用接口和抽象类。 因…...
Postman脚本处理各种数据的变量
一、变量是字符串里列表, 如 "["100","101","102","103","108"]" //把字符串的变量处理成列表 var myListJSON.parse(pm.environment.get(giftTabId)) #giftTabId变量名 //设置随机取值 var rando…...
嵌入式硬件开发工具---万用表---示波器---仿真器
万用表 主要功能: 测量交直流电压、电流 测量电阻、二级管及电路通断 其他----电容、频率、温度----特殊的万用表 * 检查电路是否正常 * 检查电路连接情况 示波器 主要功能: 以波形展示电信号随时间变化的关系 主要指标: 带宽---大…...
数据预处理之特征选择 (Feature Selection)
哈喽,大家好,我是我不是小upper~ 今天的文章和大家来聊聊数据与处理方法中常用的特征选择 在开始说特征选择前,咱们先搞清楚这个所谓的“特征”到底是啥玩意儿。 打个比方说,如果我们要训练一个模型来判断某个人是否会买一双运…...
Java基础 — 循环
介绍 Java基础循环是程序流程控制的核心结构,主要用于重复执行特定代码块。常见的循环包括for、while和do-while三种形式,开发者可根据不同场景灵活选择。 合理使用循环关键字能有效提升代码执行效率。掌握循环结构的核心在于理解执行流程与条件判断的时…...
参考平面的宽度-信号与电源完整性分析
参考平面的宽度: 计算特征阻抗时假设参考平面是无限宽的平面。在参考平面的宽度远大于线宽或介质厚度时,这种假设是正确的。但是PCB板上的参考平面经常被反焊盘掏空,当互连线经过参考平面掏空区域附近时,掏空的局部互连线参考平面变窄&#x…...
【Linux】Centos7 安装 Docker 详细教程
一、安装步骤 步骤一:确定你是Centos7及以上的版本 cat /etc/redhat-release 步骤二:卸载旧版本 查看官方文档:CentOS | Docker Docs 步骤三:安装GCC等工具 1.首先确保 CentOS7 能上外网 ping www.baidu.com 2.更新 Centos7…...
开源AI智能名片链动2+1模式S2B2C商城小程序源码赋能下的社交电商创业者技能跃迁与价值重构
摘要:在移动互联网深度重构商业生态的背景下,社交电商创业者面临流量成本攀升、用户粘性不足、供应链协同低效等核心痛点。本文以“开源AI智能名片链动21模式S2B2C商城小程序源码”技术体系为研究对象,通过分析其技术架构、商业逻辑及实战案例…...
计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合
长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),旨在解决传统RNN在处理长序列数据时出现的梯度消失和梯度爆炸问题。以下为你详细介绍其基本原理: 核心思想:LSTM的核心思想是引入记忆单元和门控机制来控制信息的流动,从而解决传统RNN的梯度消失问题。记忆单元类似…...
阿里云域名智能解析至国内外AWS的合规化部署指南
引言 随着全球化业务的发展,企业常面临地域合规性与用户体验优化的双重挑战。本文以阿里云域名解析为核心,结合AWS中国区(北京/宁夏)与Global区域部署,提供一套完整的解决方案,实现: 智能流量调度:国内用户访问AWS中国区,海外用户自动路由至AWS Global全链路合规:满…...
一、鸿蒙编译篇
一、下载源码和编译 https://blog.csdn.net/xusiwei1236/article/details/142675221 https://blog.csdn.net/xiaolizibie/article/details/146375750 https://forums.openharmony.cn/forum.php?modviewthread&tid897 repo init -u https://gitee.com/openharmony/mani…...
计算机网络 | 应用层(3)-- 因特网中的电子邮件
💓个人主页:mooridy 💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记 关注我🌹,和我一起学习更多计算机的知识 🔝🔝🔝 目录 3. 因特网中的电子邮件 …...
Missashe考研日记-day27
Missashe考研日记-day27 0 写在前面 博主昨晚有事所以没学专业课,白天学了其他科,但是觉得不太好写博客,就合在今天一起写好了。 1 专业课408 学习时间:3h30min学习内容: 今天把内存管理部分剩下的关于分页分段和段…...
【Castle-X机器人】五、物联网模块配置与调试
持续更新。。。。。。。。。。。。。。。 【Castle-X机器人】五、物联网模块配置与调试 五、物联网模块配置与调试5.1 物联网模块调试物联网模块测试:控制物联网模块:物联网模块话题五、物联网模块配置与调试 5.1 物联网模块调试 调试前需确保Castle-x与mqtt主机服务器处于同…...
FastAPI 零基础入门指南:10 分钟搭建高性能 API
一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…...
有关图的类型的题目(1)
1、图着色问题 #include<bits/stdc.h> using namespace std; const int N510,MN*N; int color[N]; vector<int> g[M]; int v,m,k,n;void add(int a,int b){g[a].push_back(b);g[b].push_back(a); } int judge(int cnt){if(cnt!k)return 0;for(int i1;i<v;i){fo…...
threejs 零基础学习day01
一、threejs本地环境搭建 1、下载源码 (1)进入threejs官网,把源码下载到本地访问。https://github.com/mrdoob/three.js (2)使用git命令的方式进行下载(优点是,threejs更新频繁,这…...
dubbo 异步化实践
DubboService public class AsyncOrderFacadeImpl implements AsyncOrderFacade {private Logger logger LoggerFactory.getLogger(AsyncOrderFacadeImpl.class);// 构建线程池ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(1000, 1000, 10, TimeUnit.SECOND…...
Web端ER可视化
背景介绍 因业务需要,团队决定对原ER图功能进行重构。重构来自两方面,一是功能上进行了细分,二是实现方式发生了变化。下面是重构前后对比: 重构前重构后功能方面只有逻辑模型层面的ER图包括概念模型、逻辑模型、物理模型3个层面的ER图实现方式单页面、antv/g6微前端、Rea…...
Java在云计算、大数据、云原生下的应用和优势 - 面试实战
Java在云计算、大数据、云原生下的应用和优势 - 面试实战 第一轮提问 面试官:马架构,请简单介绍一下Java在云计算中的主要应用场景有哪些? 马架构:Java在云计算中的主要应用场景包括微服务架构设计、容器化部署(如D…...
精益数据分析(27/126):剖析用户价值与商业模式拼图
精益数据分析(27/126):剖析用户价值与商业模式拼图 在创业和数据分析的领域中,每一次深入学习都是一次成长的契机。今天,我们继续秉持共同进步的理念,深入研读《精益数据分析》,剖析用户价值的…...
从 Lambda 到 DSL:Kotlin 接口实现的演进之路
Kotlin 中优化 Android 接口实现的几种方式 在 Android 开发中,Kotlin 提供了多种优雅的方式来优化接口实现。以下是几种优化方案: 1. 使用 SAM 转换简化单方法接口 对于单一抽象方法(Single Abstract Method, SAM)接口: // 优化前 butto…...
GitOps进化:深入探讨 Argo CD 及其对持续部署的影响
什么是 GitOps? 虽然软件开发生命周期的大部分已经实现自动化,但基础设施仍然在很大程度上依赖于人工,需要专业团队的参与。随着当今基础设施需求的不断增长,实施基础设施自动化变得越来越重要。现代基础设施需要具备弹性&#x…...
有源晶振与无源晶振详解:区别、应用与选型指南
一、基本定义 无源晶振(Crystal,晶体谐振器) 结构:仅包含石英晶体,无内置振荡电路。 工作原理:依赖外部电路(如MCU的振荡器)驱动,通过机械振动产生谐振频率。 核心公式…...
机器学习:逻辑回归实现二元分类
本例子以鸡蛋受精卵为例,假设未受精的鸡蛋在某个区域聚集,受精的在另一个区域。比如,用正态分布生成两个类别的数据,均值不同,方差相同或不同。例如,未受精的鸡蛋的特征均值为[1,1],受精的为[4,4],这样两类数据点可以在二维空间中被分开。 首先,生成数据。使用sklear…...
Android学习总结之kotlin篇(一)
1. open 关键字的用法和作用深入源码分析 类的 open 修饰:在 Kotlin 字节码层面,对于一个open类,编译器会在生成的字节码中添加ACC_SUPER和ACC_OPEN标志。例如,定义一个open class TestOpenClass,反编译其字节码可以看…...
arcgis空间分析理论研究
arcgis的空间分析功能有(1)地形与地表分析;(2)距离与成本分析;(3)密度分析;(4)水文分析;(5)统计分析ÿ…...
70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2输出: 2解释: 有两种方法可以爬到楼顶。…...
Eigen核心矩阵/向量类 (Matrix, Vector, Array)
1. Matrix 类(稠密矩阵) 模板参数 cpp Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> Scalar: 元素类型(如 float, double, int)。 Rows/Cols: 行数和列数(Dynamic 表示动态大小)。 O…...
立创EDA
空格键:旋转 alt w : 布线 alt v : 放置过孔 shift x :先在原理图中框选,按下shiftx,批量选中pcd中的对应元件 shift h : 选中的网络持续高亮/取消高亮 更改位号:举例 框选要更改的电阻 右侧栏属性 --> 位号…...
计算机网络笔记(十二)——2.5数字传输系统
数字传输系统是光纤通信中实现高速数据传输的核心技术,解决了传统模拟传输的速率不统一、同步性差等问题。 一、早期数字传输的问题 速率标准不统一:北美(T1: 1.544Mbps)和欧洲(E1: 2.048Mbps)采用不同的…...
[FPGA Video IP] Video Processing Subsystem
Xilinx Video Processing Subsystem IP (PG231) 详细介绍 概述 Xilinx LogiCORE™ IP Video Processing Subsystem (VPSS)(PG231)是一个高度可配置的视频处理模块,设计用于在单一 IP 核中集成多种视频处理功能,包括缩放…...
java基础之枚举和注解
枚举 简介 枚举:enumeration,jdk1.5中引入的新特性,用于管理和使用常量 入门案例 第一步:定义枚举,这里定义一个动物类,里面枚举了多种动物 public enum AnimalEnum {CAT, // 猫DOG, // 狗PIG // …...
前端开发本地配置 HTTPS 全面详细教程
分为两步:生成证书、本地服务配置使用证书一、HTTPS 的基本概念 HTTPS 是一种安全的 HTTP 协议,它通过 SSL/TLS 对数据进行加密,确保数据在传输过程中不被窃取或篡改。在前端开发中,某些功能(如 Geolocation API、Web…...
C语言中宏的高级应用
一、宏的核心高级特性 1. 变参宏(Variadic Macros) 支持不定数量参数,用于灵活处理格式化字符串、日志输出等场景。 #include <stdio.h>// 定义支持可变参数的调试宏 #define DEBUG_LOG(format, ...) \printf("[DEBUG] %s:%d |…...