随笔分类 - 嵌入式开发
摘要:一、I2C简介 1.1、I2C协议简介 I2C(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器以及其外围设备。它是由 数据线 SDA 和 时钟线 SCL构成的串行总线,可发送和接收数据,在 CPU 与被控 IC 之间、IC
阅读全文
摘要:一、串口通信简介 串口通信是一种设备间常用的串行通信方式,串口按位(bit)发送和接收字节。串口通信的数据包由发送设备的 TXD 接口传输到接收设备的 RXD 接口。在串口通信的协议层中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据,
阅读全文
摘要:一、外部中断简介 外部中断属于硬件中断,由微控制器外部事件触发。微控制器的特定引脚被设计为对特定事件(如按钮按压、传感器信号变化等)作出响应,这些引脚通常称为 “外部中断引脚”。一旦外部中断事件发生,当前程序执行将立即暂停,并跳转到相应的中断服务程序(ISR)进行处理。处理完毕后,程序会恢复执行,从
阅读全文
摘要:一、GPIO简介 GPIO 是负责控制或采集外部器件信息的外设,主要负责输入输出功能。ESP32-S3 芯片具有 45 个物理 GPIO 管脚。每个管脚都可用作一个通用输入输出,或连接一个内部外设信号。ESP-IDF 提供了丰富的 GPIO 操作函数,开发者可以在 esp-idf-v5.3.2\co
阅读全文
摘要:一、ESP32单片机简介 ESP32 是一款非常流行的物联网 (IoT) 芯片,由 Espressif Systems 开发。它集成了双核微控制器和 Wi-Fi 与蓝牙模块,内置了天线开关、RF 射频模块、功率放大器、低噪声接收放大器、滤波器和电源管理模块。这款微控制器的工作温度范围达到 -40°C
阅读全文
摘要:一、什么是I/O多路复用 I/O 多路复用(I/O Multiplexing)是 Linux 中用于处理多个 I/O 操作的机制,使得单个线程或进程可以同时监视多个文件描述符,以处理多路 I/O 请求。我们使用 I/O 多路复用省去了进程或线程上下文切换的开销,提升了处理效率,减少了系统资源(如内存
阅读全文
摘要:一、什么是UDP协议 相对于 TCP 协议,UDP 协议则是面向无连接的协议。使用 UDP 协议时,不需要建立连接,只需要知道对象的 IP 地址和端口号,就可以直接发数据包。但是,数据无法保证一定到达。虽然用 UDP 传输数据不可靠,但它的优点是比 TCP 协议的速度快。对于不要求可靠到达的数据而言
阅读全文
摘要:一、TCP协议简介 1.1、什么是TCP协议 TCP(传输控制协议,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 协议则是建立在 IP 协议之上的。它旨在提供可靠的端到端通信,在发送数据之前,需要在两个通信端口之间建立连接
阅读全文
摘要:一、什么网络通信 计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便的互相传递信息、共享硬件、软件、数据信息等资源。网络编程直接或间接地通过网络协议与其它计算机实现数据交换,进行通信。 OSI参考模型 TCP/IP参考模型
阅读全文
摘要:一、什么是信号量 信号量(Semaphore)本质上是一个非负整数变量,它可以用来控制对共享资源的访问。在 Linux 中,信号量是用来协调进程或线程的执行的,并不承担传输数据的职责。信号量主要用于两种目的:互斥 和 同步。 互斥(Mutex):确保多个进程或线程不会同时访问临界区(即访问共享资源的
阅读全文
摘要:一、什么是信号 在 Linux 中,信号是一种用于通知进程发生了某种事件的机制。信号可以由内核、其它进程或者命令行工具发送给目标进程。Linux 系统中由多种信号,每种信号都用一个唯一的数值表示。例如,常见的信号如下: SIGINT (2):这是当用户在终端按下 Ctrl+C 时发送给前台进程的信号
阅读全文
摘要:一、什么是消息队列 消息队列是一种先进先出的队列型数据结构,实际上是系统内核中的一个内部链表。消息被顺序插入队列中,其中发送进程将消息添加到队列末尾,接受进程从队列头读取消息。 多个进程可同时向一个消息队列发送消息,也可以同时从一个消息队列中接收消息。发送进程把消息发送到队列尾部,接受进程从消息队列
阅读全文
摘要:一、什么是线程 线程(Thread)是进程内的一个执行单元,它共享相同的地址空间和其它资源(包括文件描述符、信号处理等),但每个线程都有自己的栈空间。相比于进程而言,线程的创建、销毁、切换等操作要操作的资源消耗小很多。由于线程共享地址空间和数据段,因此同一进程的多进程之间数据交互比进程间通信要方便很
阅读全文
摘要:一、什么是进程 进程(Process)是正在运行的程序,是操作系统进行资源分配的基本单位。程序是存储在硬盘或内存的一段二进制序列,是静态的,而进程是动态的。每个进程都由自己的地址空间、代码段、数据段以及分配给它的其它系统资源(如文件描述符、网络连接等)。 二、创建子进程 在 Linux 中,我们可以
阅读全文
摘要:一、为什么要使用文件 我们之前写的程序在运行起来的时候,我们可以给程序增加或删除数据,此时的数据都是存在内存中。当程序执行完毕退出的时候,之前程序中增减或减少的数据就不存在了,等程序下一个运行的时候,数据又会重新录入。 如果我们想把程序中的数据记录来,只有在我们选择删除的时候,数据才不复存在。这就涉
阅读全文
摘要:一、什么是CMake工具 CMake 是一个跨平台的构建系统生成器,主要用于管理和自动化软件项目的构建过程。它通过读取项目中的 CMakeLists.txt 文件来生成适用于不同编译器和操作系统的构建文件。 对于大型或复杂的项目,直接编写和维护 Makefile 文件可能会变得非常复杂且容易出错,并
阅读全文
摘要:一、什么是Makefile文件 Makefile 文件时一种用于管理和自动化软件编译过程的文本文件。它通常包含了一系列规则,这些规则描述了如何根据源代码文件生成可执行文件或者其它目标文件。Makefile 的核心概念是规则和依赖关系,规则定义了如何生成一个或多个目标文件,而依赖关系则指定了生成目标文
阅读全文
摘要:一、GCC、glibc和GNU C的关系 GCC 全程 GUN Compiler Collection,是 GNU 项目的一部分,主要是一套编译器工具集,支持多种编程语言,包括 C、C++、Object-C、等。GCC 最初作为 GUN 操作系统的官方编译器,用于编译 GNU/Linux 系统和应用
阅读全文
摘要:一、什么是正则表达式 正则表达式(regular expression)又称 规则表达式,是一种文本模式(pattern)。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式的核心功能就是处理文本。正则表达式并不仅限于某一种语言,
阅读全文
摘要:一、什么是Shell Shell 是操作系统中的一个 命令行解释器,主要功能是接收用户命令,然后将这些命令传递给操作系统内核去执行。 Shell 是用户与操作系统内核之间的接口,它允许用户通过命令行或脚本来与操作系统进行交互。同时,Shell 也是一种脚本语言,允许用户编写一系列命令脚本(Shell
阅读全文

浙公网安备 33010602011771号