当前位置: 首页 > news >正文

Linux学习-硬件

1. CPU, MPU, MCU, GPU 的定义与区别

  • CPU(Central Processing Unit,中央处理器)
    计算机的核心部件,负责执行指令、处理数据,是系统的“大脑”。主要功能包括运算(算术/逻辑运算)、控制(协调各部件工作)和数据传输,广泛用于PC、服务器、手机等设备。

  • MPU(Microprocessor Unit,微处理器)
    单芯片形式的处理器,仅包含CPU核心及基本控制逻辑,不集成内存、外设接口等,需要外部电路支持才能工作。例如早期的Intel 8086、ARM Cortex-A系列(如手机中的应用处理器)。

  • MCU(Microcontroller Unit,微控制器)
    又称“单片机”,是集成了CPU、内存(RAM/ROM)、外设(如GPIO、定时器、UART等)的单芯片,适合嵌入式小型系统。例如8051、STM32、Arduino的ATmega系列,广泛用于家电、传感器、智能设备等。

  • GPU(Graphics Processing Unit,图形处理器)
    专门处理图形渲染的处理器,擅长并行计算(同时处理大量重复数据)。除了显示图像,还用于深度学习、科学计算等场景。例如NVIDIA的GeForce系列、手机中的Adreno系列。

2. 外设寄存器

外设寄存器是嵌入在芯片外设(如GPIO、UART、定时器等)中的特殊存储单元,用于配置外设功能、读取状态或发送/接收数据。

  • 每个寄存器对应特定功能(如配置引脚方向、设置波特率),通过读写寄存器的值可控制外设工作。
  • 寄存器有固定的地址,CPU通过访问这些地址来操作外设(例如向GPIO的控制寄存器写入值,可设置引脚为输入/输出)。

3. LED实验中常用的寄存器(以8051或STM32为例)

LED实验的核心是控制GPIO引脚输出高低电平,常用寄存器包括:

  • 方向寄存器(如8051的P1口寄存器、STM32的GPIOx_MODER)
    配置引脚为输入或输出(例如设置为输出模式才能控制LED亮灭)。
  • 数据寄存器(如8051的P1口数据寄存器、STM32的GPIOx_ODR)
    向寄存器写入0或1,控制引脚输出低电平(LED导通)或高电平(LED截止)。
  • (部分芯片)上拉/下拉寄存器:若LED通过引脚高电平点亮,可能需要配置上拉电阻确保电平稳定。

4. GPIO(General Purpose Input/Output,通用输入输出)

GPIO是芯片上的通用引脚,可通过软件配置为输入或输出,实现与外部设备的交互:

  • 输出模式:可输出高低电平,用于控制LED、继电器、电机等。
  • 输入模式:可读取外部信号(如按钮状态、传感器数据)。
  • 灵活性高,是嵌入式开发中最基础、最常用的外设,几乎所有MCU/MPU都包含GPIO模块。

例如:LED实验中,GPIO被配置为输出模式,通过输出高低电平控制LED的亮灭。

#include<reg52.h>
#include"led.h"void led_all_on(void)
{P2 = 0;
}
void led_all_off(void)
{P2 = 0xFF;
}
void led_on(unsigned char n)
{P2 = n;
}

有关晶体管点亮的程序

#include<reg52.h>
#include"digiter.h"
#include"delay.h"
void bit_select(int n)
{P1 &= ~(0x0F << 0);P1 |= (1 << n);
}void segment_select(int n)
{unsigned char t[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};P0 = t[n];delay(300);//保证二极管导通P0 = 0;delay(100);//消影
}void show_number(int n)
{int t = 0;if(n > 9999){return;}else if(0 == n){bit_select(0);segment_select(0);}while(n){bit_select(t++);segment_select(n % 10);n /= 10;}
}
http://www.dtcms.com/a/365927.html

相关文章:

  • 2025年IT行业入门级证书选择与分析
  • 从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
  • 深入浅出:YOLOv8性能评估指标与电科金仓2025AI新成果
  • SuperMap GIS基础产品FAQ集锦(20250819)
  • C++----模板特化以及模板声明与定义分离问题
  • 2025 大学生必考 IT 行业证书
  • BigemapPro中的坐标定位于与拾取
  • NuttX编译流程与config.h生成解析
  • STM32G4 电流环闭环
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-授权服务
  • 后端框架(SpringBoot):自动配置的底层执行流程
  • 2025年经管专业人士证书选择与分析
  • 深入理解Cloudflare错误1006、1007和1008:原因、解决方案和预防措施
  • Android创建demo脚本
  • 比亚迪欧洲逆袭特斯拉,新能源出海新纪录!
  • Redis 哨兵模式(Sentinel Mode)
  • Reflection反射
  • rsync + lsyncd 的高效文件实时同步系统
  • Docker Pull 代理配置方法
  • 投影矩阵:计算机图形学中的三维到二维转换
  • GDAL 下载安装
  • 【深度学习新浪潮】用3DGS做三维重建有哪些主要的技术路线可供选择?
  • 论文介绍:“DUSt3R”,让 3D 视觉从“繁琐”走向“直观”
  • Redis初阶学习
  • 今日行情明日机会——20250903
  • 数据结构:图(Graph)
  • react-android-0.80.2-debug.aar下载很慢
  • ESLint 中与 Prettier 规则 与 editorconfig优先级
  • 如何开发一款高稳定、低延迟、功能全面的RTSP播放器?
  • 安卓APP备案的三要素包名,公钥,签名md5值详细获取方法-优雅草卓伊凡