嵌入式学习前要了解的基础知识
一、电压和电流
在嵌入式开发中,电压和电流是两个基本的电气概念,对于理解和设计电子电路至关重要。它们直接影响到嵌入式系统的性能、功耗、可靠性和安全性。
电压(Voltage)
电压是电场力推动电荷移动的能力,通常以伏特(V)为单位。在嵌入式系统中,电压的概念涉及到以下几个方面:
-
供电电压:嵌入式设备需要一个稳定的供电电压来保证其正常工作。例如,一个微控制器(MCU)可能需要3.3V或5V的供电电压。
-
逻辑电平:数字电路中,电压用来表示二进制逻辑电平。例如,高电平(High)可能表示逻辑1,低电平(Low)表示逻辑0。
-
模拟信号:在模拟电路中,不同的电压值代表不同的信号强度,如声音、光线或温度等。
-
电压转换:嵌入式系统中可能需要不同电压级别的组件,因此需要电压转换器(如稳压器、升压器或降压器)来适应不同的电压需求。
-
电压调节:为了保护敏感的电子元件,可能需要对电压进行调节,防止电压过高或过低。
电流(Current)
电流是电荷流动的速率,通常以安培(A)为单位。在嵌入式系统中,电流的概念涉及到以下几个方面:
-
供电电流:嵌入式设备工作时会消耗一定的电流。例如,一个微控制器在运行时可能消耗几毫安培(mA)到几十毫安培的电流,一般都不会超过25mA。
-
功耗:电流与电压的乘积等于功耗(功率)。功耗是衡量嵌入式系统能源效率的重要指标。
-
限流保护:为了防止电路过载或损坏,可能需要限制通过电路的电流。
-
信号传输:在模拟信号传输中,电流的大小可以表示信号的强度。
-
电磁兼容性:电流的变化可能产生电磁干扰,影响系统的电磁兼容性(EMC)。
电压和电流的关系
在嵌入式开发中,电压和电流之间存在密切的关系:
-
欧姆定律:电压(V)、电流(I)和电阻(R)之间的关系由欧姆定律描述:V=I×R。这意味着通过改变电阻,可以控制电流或电压。
-
功率计算:功耗(P)可以通过电压和电流计算得出:P=V×I。
-
信号完整性:在高速信号传输中,电压摆幅和电流能力需要满足一定的要求,以保证信号的完整性。
应用场景
在嵌入式开发中,电压和电流的概念广泛应用于:
-
电源管理:设计电源电路,确保系统各部分获得合适的电压和电流。
-
电路设计:选择合适的电压和电流规格,以满足电路的性能和功耗要求。
-
故障诊断:通过测量电压和电流,诊断电路中的故障。
-
安全保护:设计过压、过流保护电路,防止系统损坏。
总之,在嵌入式开发中,电压和电流是设计和分析电路的基础,对于确保系统的稳定性和可靠性至关重要。
二、单片机概述
单片机(Single Chip Microcomputer)
单片机是一种集成电路,它集成了处理器核心CPU、内存、输入/输出(I/O)端口、串行通讯接口、定时器、模拟/数字转换器(ADC/DAC)等多种功能。单片机通常用于控制应用,能够执行简单的程序来管理设备的操作。它们可以是通用的,也可以是为特定应用定制的。也叫(Micro Controller Unit )MCU。
嵌入式系统(Embedded System)
嵌入式系统是一种专用计算机系统,它作为更大的设备或系统的一个组成部分,通常用于控制设备的操作。嵌入式系统可能包含一个或多个微处理器或微控制器,以及为特定任务设计的硬件和软件。嵌入式系统的关键特性包括:
-
专用性:为特定的控制功能或应用而设计。
-
实时性:能够保证在严格定义的时间范围内响应。
-
资源受限:在处理能力、内存和能源方面有限制。
-
可靠性和稳定性:需要在恶劣环境下可靠运行。
-
体积小:通常嵌入在所控制的设备内部。
单片机和嵌入式系统的区别
虽然所有的单片机都可以被认为是嵌入式系统,但并非所有的嵌入式系统都是单片机。区别主要体现在:
-
复杂性:嵌入式系统可能比单片机更复杂,因为它们可能包含多个处理器和复杂的外围设备。
-
集成度:单片机具有高度集成的特性,而嵌入式系统可能由多个组件构成,这些组件之间通过各种接口(如I2C、SPI等)连接。
-
应用范围:嵌入式系统的应用范围更广,它们可以用于汽车、家用电器、工业控制等多种场合,而单片机通常用于较为简单的控制应用。
-
软件和硬件:嵌入式系统的软件和硬件通常更定制化,以适应特定的应用需求,而单片机可能运行更通用的程序。
-
开发环境:嵌入式系统的开发可能需要考虑更多的因素,如功耗、散热、实时性能等,而单片机开发可能更侧重于程序设计和逻辑控制。
总结来说,STM32作为一种单片机,可以视为一种特殊的嵌入式系统,它集成了多种功能,适用于广泛的嵌入式应用。在实际使用中,选择STM32还是其他类型的嵌入式系统,取决于具体的应用需求、性能要求和成本考虑。
常见MCU
三、单片机控制原理
单片机(通常称为微控制器或微处理器)控制原理涉及到硬件和软件的协同工作,以实现对电子设备的控制。单片机控制原理可以概括为以下几个关键步骤:
-
输入信号采集:
-
单片机通过其输入/输出(I/O)端口采集外部信号,如传感器数据、按钮状态、开关信号等。
-
-
信号处理:
-
采集到的信号可能需要通过模拟/数字转换器(ADC)转换为数字信号,以便单片机处理。
-
单片机内部的处理器对数字信号进行处理,如计算、逻辑判断、数据转换等。
-
-
决策制定:
-
根据处理后的信号,单片机运行预先编写的程序(固件)来制定控制策略。
-
程序中可能包含一系列的条件判断、循环和分支,以实现复杂的控制逻辑。
-
-
输出控制:
-
单片机根据决策结果通过I/O端口控制外部设备,如驱动电机、点亮LED、发送通信信号等。
-
输出控制可能涉及到数字信号的直接输出,或者通过驱动电路来控制更高功率的设备。
-
-
通信与协调:
-
单片机可能需要与其他设备进行通信,如通过串行通信(UART)、I2C、SPI等协议与其他单片机或模块交换数据。
-
在多设备系统中,单片机还可能需要协调不同设备之间的工作,实现同步控制。
-
-
中断处理:
-
单片机通常具有中断机制,能够响应外部或内部事件(如定时器溢出),快速改变程序执行流程以处理紧急任务。
-
中断可以使单片机及时响应外部变化,提高系统的实时性。
-
-
电源管理:
-
单片机可能需要管理其电源使用,包括节能模式的切换、电源故障检测等,以提高系统的可靠性和效率。
-
-
程序存储与执行:
-
控制程序通常存储在单片机的只读存储器(ROM)、闪存(Flash Memory)或其他非易失性存储器中。
-
单片机的处理器从存储器中取出指令,解码后执行,实现对系统的控制。
-
单片机控制系统的设计和实现需要考虑系统的整体需求,包括处理能力、内存大小、I/O端口数量和类型、通信接口、电源要求等。开发者需要根据应用场景选择合适的单片机型号,并编写相应的控制程序来实现所需功能。
高低电平
在电子学和数字电路中,高电平和低电平是用来表示二进制数的两种状态。它们是数字信号的两个基本电位(bit)状态,通常对应于逻辑“1”和逻辑“0”。
高电平(High Level)
-
高电平通常是指电路或系统中的正逻辑电平,它表示逻辑“1”。
-
在不同的电路系统中,高电平的具体电压值可能不同。例如,在TTL(晶体管-晶体管逻辑)电路中,高电平可能定义为+5V,而在CMOS(互补金属氧化物半导体)电路中,高电平可能接近电源电压,如+3.3V或+5V。
-
高电平可以用于表示设备开启、激活或“真”状态。
低电平(Low Level)
-
低电平通常是指电路或系统中的负逻辑电平,它表示逻辑“0”。
-
同样,低电平的具体电压值取决于电路类型和设计。在TTL电路中,低电平可能定义为0V,而在CMOS电路中,低电平可能接近地线电压,如0V或-0.3V。
-
低电平可以用于表示设备关闭、停用或“假”状态。
应用
高低电平在数字电路设计中非常重要,它们用于:
-
数据表示:在数字系统中,高低电平用来表示数据位。
-
逻辑运算:在逻辑门电路中,高低电平通过逻辑运算产生新的输出电平。
-
信号传输:在通信系统中,高低电平用于数据传输,如RS-232、RS-485等接口。
-
控制信号:在控制系统中,高低电平用作控制信号,如启动、停止等。
注意事项
-
噪声抗扰:在实际应用中,高低电平的选择需要考虑噪声抗扰能力,以确保信号的准确性。
-
电平转换:在模拟信号和数字信号之间转换时,需要使用电平转换器(如ADC和DAC)。
-
电压兼容性:不同设备或模块之间连接时,需要注意高低电平的电压兼容性,以避免损坏设备。
理解高低电平的概念对于设计和分析电子电路至关重要,它们是数字电子学的基础。
相关文章:

嵌入式学习前要了解的基础知识
一、电压和电流 在嵌入式开发中,电压和电流是两个基本的电气概念,对于理解和设计电子电路至关重要。它们直接影响到嵌入式系统的性能、功耗、可靠性和安全性。 电压(Voltage) 电压是电场力推动电荷移动的能力,通常以…...
RTC、直播、点播技术对比|腾讯云/即构/声网如何选型 — 2025 版
前言 作为一个有多年实战经验的开发者,在音视频技术领域我深刻体会到 RTC(实时通信)、直播和点播三者的不同。虽然它们的核心都涉及音视频内容的传输,但在实际应用中,它们的技术实现、使用场景以及所面临的挑战各不相…...

《白帽子讲 Web 安全》之文件操作安全
目录 引言 (一)文件上传与下载漏洞概述 1.文件上传的常见安全隐患 1.1前端校验的脆弱性与服务端脚本执行危机在文件上传流程中,部分开发者可能会在前端使用 JavaScript 代码对文件后缀名进行简单校验,试图以此阻止非法文件上传…...
yolov8训练模型、测试视频
yolov8先训练生成best.pt文件,用这个生成的模型进行视频的测试 因为本来用的代码生成的测试视频打不开,格式应该是损坏了,或者部分帧没有正常保存吧。 修改了一下代码,现状可以正常打开生成的视频了。 1、训练代码train.py im…...
03.网络编程套接字(二)
文章目录 简单的TCP网络程序 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端处理请求 客户端创建套接字 客户端发起请求 服务器测试 单执行流服务器的弊端 多进程版的TCP网络程序 线程池版的TCP网络程序 简单的TCP网络程序 服务端创建套接字 我…...

一周学会Flask3 Python Web开发-Flask3之表单处理WTForms安装与定义WTForms表单类
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们平时开发项目,都会用到表单,编写表单,提交表单,验证表单,如果…...
Git基本命令索引
GIT基本命令索引 创建代码库修改和提交代码日志管理远程操作操作分支 创建代码库 操作指令初始化仓库git init克隆远程仓库git clone 修改和提交代码 操作指令查看文件状态git status文件暂存git add文件比较git diff文件提交git commit回滚版本git reset重命名或者移动工作…...

【论文阅读笔记】SL-YOLO(2025/1/13) | 小目标检测 | HEPAN、C2fDCB轻量化模块
目录 摘要 1 引言 2 相关工作 3 方法 3.1 为小目标检测增加一个头 3.2 优化网络结构 3.3 改进轻量化模块 3.3.1 C2fDCB 3.3.2 SCDown 4 实验 4.1 数据集 4.2 实验环境 4.3 与其他模型的比较 4.4 消融研究 ▲不同网络结构的分析 ▲不同模块的分析 ▲不同降采样…...

MySQL SQL 优化专题
MySQL SQL 优化专题 1. 插入数据优化 -- 普通插入(不推荐) INSERT INTO tb_user VALUES(1,tom); INSERT INTO tb_user VALUES(2,cat); INSERT INTO tb_user VALUES(3,jerry);-- 优化方案1:批量插入(推荐,不建议超过1…...

Mac上安装Pycharm
说明:仅供参考,是自己的安装流程,以免以后自己想不起来来看看的笔记 官网地址:https://www.jetbrains.com/pycharm/ 1、点击Download,跳转到下一个页面 2、MAC,选择Mac OS,在Pycharm Professio…...
flask框架基础入门学习教程
文章目录 前言1. 环境搭建1.1Python安装1.2选择Python开发环境1.3 创建虚拟环境(可选但推荐)1.4 安装 Flask 2. 第一个 Flask 应用3. 路由和视图函数3.1 基本路由3.2 动态路由3.3 路由参数类型 4. 请求和响应4.1 获取请求数据4.2 响应对象 5. 模板渲染6.…...

Qt显示一个hello world
一、显示思路 思路一:通过图形化方式,界面上创建出一个控件显示。 思路二:通过编写C代码在界面上创建控件显示。 二、思路一实现 点开 Froms 的 widget.ui,拖拽 label 控件,显示 hello world 即可。 qmake 基于 .…...
MySQL快速搭建主从复制
一、基于位点的主从复制部署流程 确定主库Binlog是否开启修改主从server_id主库导出数据从库导入数据确定主库备份时的位点在从库配置主库信息查看复制状态并测试数据是否同步 二、准备阶段(主库和从库配置都需要修改) 1、确定主库Binlog是否开启 2、修改主从se…...
力扣-动态规划-674 最长连续递增序列
思路 dp数组定义:以i为结尾的最长连续递增序列递推公式: if(nums[i-1] < nums[i]) dp[i] dp[i-1] 1; dp数组初始化:都为1遍历顺序:顺序时间复杂度: 代码 class Solution { public:int findLengthOfLCIS(v…...

在笔记本电脑上用DeepSeek搭建个人知识库
最近DeepSeek爆火,试用DeepSeek的企业和个人越来越多。最常见的应用场景就是知识库和知识问答。所以本人也试用了一下,在笔记本电脑上部署DeepSeek并使用开源工具搭建一套知识库,实现完全在本地环境下使用本地文档搭建个人知识库。操作过程共…...

leetcode 94. 二叉树的中序遍历
题目如下 做了那么多道难题,给自己放放松。通过代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int …...
YOLOv12:目标检测新时代的破局者
目录 一、YOLOv12 横空出世二、YOLOv12 的性能飞跃2.1 多规模优势2.2 对比超越 三、技术创新与原理剖析3.1 区域注意力模块(Area Attention,A2)3.2 残差高效层聚合网络(R-ELAN)3.3 架构优化细节 四、实验验证与结果分析…...

基于OFDR的层压陆相页岩油储层中非对称裂缝群传播的分布式光纤监测
关键词:OFDR、分布式光纤传感、裂缝传播 一. 概述 四川盆地凉高山组优质页岩油储层存在复杂的垂直重叠岩性,大陆页岩油储层存在发育层理,薄层和天然裂缝,对水平井多级压裂技术的裂缝网络形态控制和监测构成挑战。本研究提出了一…...

Linux虚拟机网络配置-桥接网络配置
简介 本文档旨在指导用户如何在虚拟环境中配置Linux系统的桥接网络,以实现虚拟机与物理主机以及外部网络的直接通信。桥接网络允许虚拟机如同一台独立的物理机一样直接连接到物理网络,从而可以被分配一个独立的IP地址,并能够与网络中的其他设…...

软开经验总结
文章目录 软开经验总结一、二次开发时候操作步骤二、logger的作用!!!三、git使用 软开经验总结 一、二次开发时候操作步骤 改 SDK 和 language level改 maven 配置改数据库 注意Mysql 版本 差别是否过大!!࿰…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...