自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 【嵌入式学习7】MODBUS协议 - 常用功能码

通信:读取数据、写入数据协议:被大多数人任何的规范约定,当大多数人都遵守协议时可以提供工作效率。

2025-04-21 00:15:09 963

原创 【嵌入式面试】

中断函数执行时间过长,会阻塞其他低优先级中断的响应。例如,如果一个高优先级中断处理程序中包含耗时操作,低优先级中断(如传感器数据采集中断)可能无法及时被处理,导致数据丢失或系统响应延迟。例如,当检测到按键中断时,仅在中断函数中设置一个标志位,然后在主循环中检查该标志位并执行相关操作。:如果中断函数中执行了可能引起睡眠或放弃CPU的操作(如调用某些阻塞函数),会导致系统调度无法正常进行,进而可能使系统崩溃。:在中断函数中执行复杂操作时,可能会与其他任务或中断访问共享资源,导致数据不一致或竞态条件。

2025-04-08 23:12:03 421

原创 【嵌入式学习6】多任务版TCP服务器

开发一个多任务版的TCP服务端程序能够服务于多个客户端。

2025-04-07 15:25:28 711

原创 【嵌入式学习6】python线程开发

观察下面代码,可以发现当主线程睡眠2秒,开始结束字节的时候,但是子线程还没有结束,默认情况下,子线程继续执行。此时,可以将子线程设置为守护进程,当主线程退出时,子线程也会被强制结束(守护进程不影响主线程退出)

2025-04-07 00:19:37 309

原创 【嵌入式学习3】UDP发送端、接收端

【代码】【嵌入式学习3】UDP发送端、接收端。

2025-04-06 00:28:30 370

原创 【嵌入式学习3】基于python的tcp客户端、服务器

【代码】【嵌入式学习3】基于python的tcp客户端、服务器。

2025-04-05 23:43:40 550

原创 【嵌入式学习5】PyQt5注册界面 - 自定义信号和槽

将不同作用的代码分成不同的小块,提高代码的可读性和可维护性。1、定义信号:在类中定义信号,可以通过创建一个信号对象。2、定义槽:在类中定义槽函数,使用装饰器注册槽函数3、连接信号和槽:使用信号.connect(槽函数)将信号和槽连接起来4、触发信号:在触发信号的地方,使用信号.emit()触发该信号,参数和槽函数一致import sys# 信号所在类:必须继承QObject,并且在初始化函数中调用super的初始化函数# a. 定义一个自定义信号# b. 定义一个槽函数# 创建一个对象。

2025-04-05 21:19:35 522

原创 【嵌入式学习5】PyQt布局- 信号和槽 - 按钮 - 对话框 - 面向对象

通过调用QObject对象的connect函数来将对象的信号和另一个队形槽函数关联,当发射这发射信号,接收者的槽函数将被调用。它们是 Qt 的事件驱动编程模型的基础,允许对象在某些事件发生时通知其他对象,并。控件会自动成为父控件的子控件,并且父控件会管理子控件的显示和事件处理。子布局会自动成为父布局的一部分,并且父布局会管理子布局的位置和大小。控件会自动成为布局的子控件,并且布局会管理控件的位置和大小。布局管理器会管理控件内部的子控件的位置和大小。:可选参数,用于设置子布局的伸展因子。:要设置布局的控件。

2025-04-05 16:44:26 1138

转载 【嵌入式学习5】PyQt文本QLabel、图片QPixmap、输入框QLineEdit/QTextEdit,布局管理器QVBoxLayout

不显示任何输入的字符,常用于密码类型的输入,且其密码长度需要保密时。显示与平台相关的密码掩码字符,而不是实际输入的字符。在编辑时显示字符,负责显示密码类型的输入。设置多行文本框的内容为HTML文档。设置文本框所允许输入的最大字符数。返回多行文本框的HTML文档内容。正常显示所输入的字符,默认选项。设置多行文本框的文本内容。返回多行文本框的文本内容。清空多行文本框的内容。

2025-04-04 23:30:49 281

原创 【嵌入式学习5】PyQt5模块介绍、创建第一个窗口

PyQt 是一个用于创建图形用户界面(GUI)应用程序的 Python 库,它是 Qt 框架的 Python 绑定。

2025-04-04 17:46:43 517

原创 【嵌入式学习4】特殊参数、文件IO

要保证文件操作完后要关掉,因为程序能打开的文件数量是有上限的,并且不关闭文件会造成内存泄漏。把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,一个函数在。当函数有多个参数且顺序易混淆时,使用关键字参数可提高代码的可读性和可维护性。,如调用库函数时,明确指定参数名称可以避免因库函数参数顺序变化而导致的错误。优点是,子句体结束后,文件会正确关闭,即便触发异常也可以。(如列表、字典等),则每次调用函数时,如果没有提供该参数,会。它的位置是固定的,必须按照函数定义的顺序传递值。

2025-04-03 15:54:25 1096

原创 【嵌入式学习4】模块、包、内置模块、异常

python没有入口函数的概念,可将主程序代码放入if __name__ = '__main__':中,当前模块即可以独立测试运行,也可以被其他文件导入使用。这个命令会启动一个简单的 HTTP 服务器,监听指定的端口(在这里是 8080)类似于写一个单独出来的.py文件,再将其作为模块导入进主文件。用来放模块的文件夹,限定模块命名空间,管理模块让业务更加清晰。它会将当前目录及其子目录中的文件作为静态资源提供给客户端访问。的文件,客户端可以通过浏览器访问。该模块包含和时间相关的信息。

2025-04-02 16:54:22 797

原创 【嵌入式学习4】Python之面向对象

定义类pass# 创建对象。

2025-04-02 00:59:15 251

原创 【嵌入式学习4】Python进阶内容

d = {'中国':'China','英国':'England','美国':'America'}

2025-04-02 00:00:17 243

原创 【嵌入式学习4】Python基础知识

def 函数名():函数封装的代码namesList = ['孙颖莎','王楚钦','薯条派']一个元素的元组定义需要在元素后加上,# 错误定义方式 ❌# 正确定义方式 ✅。

2025-04-01 14:23:34 863

原创 【嵌入式学习3】Linux基础知识1

shell就是Linux内核的一个保护层(译名:贝壳),用户与内核之间的交互命令解释器用来解释用户输入的命令的。

2025-03-31 16:05:12 443

原创 【嵌入式学习3】信息安全 - SSH协议

A信息 → 信息摘要Z(使用Hash函数生成)→ 加密信息摘要E(A私钥)→(将信息M,加密信息摘要E一同发送给B)→ (B:接收信息M后使用与A相同的Hash函数生成)信息摘要N → (使用A公钥解密信息摘要E)解密后记作信息摘要K → 对比信息摘要K和信息摘要N是否一致(验证发送者身份)某个外部网络服务(如一个被防火墙限制的数据库服务),但可以通过SSH连接到一个可以访问该服务的服务器,就可以通过SSH的本地端口转发功能,将本地计算机的某个端口(如本地的3306端口)转发到远程服务器的数据库服务端口。

2025-03-31 15:24:02 940

原创 【嵌入式学习3】多用户多任务服务器实战

【代码】【嵌入式学习3】多用户多任务服务器实战。

2025-03-30 00:19:42 378

原创 【嵌入式学习3】多任务编程

软件1执行0.01秒,切换到软件2,软件2执行0.01秒,再切换到软件3,执行0.01秒……表面上看,每个软件都是交替执行的,实际上是由于CPU的执行速度块,就像这些软件都在同时执行一样,这里需要注意单核cpu是并发的执行多任务的。守护线程是一种在后台运行的线程,它不会阻止程序的退出。当程序中所有的非守护线程(用户线程)都结束运行后,程序会自动退出,而不会等待守护线程完成。对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的软件,多任务开发,有多种实现方式,从资源占用大小排序:进程 >

2025-03-29 17:46:04 314

原创 【嵌入式学习3】TCP服务器客户端 - UDP发送端接收端

③主机2向主机1发送FIN报文,请求关闭同时主机2进入CLOSE_WAIT状态【FIN=1,ACK=1,seq=w,ack=u+1】②第二次握手:服务端收到客户端的连接请求,发送数据包给客户端确认连接请求【SYN=1,ACK=1,ack=J+1,seq=K】④主机1收到主机2FIN报文,向主机2发送ASK报文,主机2收到后关闭连接【ACK=1,seq=u+1,ack=w+1】②主机2收到FIN报文,向主机1回ASK报文确认此时可以关闭连接【ACK=1,seq=v,ack=u+1】

2025-03-29 16:41:02 1210

原创 【嵌入式学习3】socket编程

socket(套接字)是进程间通信工具,不同主机间通信的api,指定ip(标记设备)指定端口号(标记发送到哪一个程序)由于网络传输是二进制数据传输的,所以需要将编码转化为二进制(bytes)数据类型。b"\xe5\xf7..字节码"

2025-03-28 23:51:36 182

原创 【嵌入式学习3】零散知识点

①用户访问(输入域名)→ ②检查本地缓存(如果找到,直接使用该 IP 地址进行访问)→ ③浏览器向运营商发出请求 → ④运营商将域名发送至DNS(Domain Name System)解析→⑤将解析的ip地址发送给运营商,运营商再向该ip网络服务器请求 → ⑥将返回结果发送给运营商,运营商响应回浏览器。:如果你的网络中启用了 DHCP 服务,确保静态 IP 地址不在 DHCP 分配的范围内。存储文件的关键信息(类型,rwx,UID/GID,文件大小),指针,时间戳,硬链接数量,数据块。

2025-03-28 23:32:29 1026

原创 【嵌入式学习2】指针数组结构体练习题

4、编写一个函数find_index,接受一个整型数组、数组的长度和一个整数作为参数,查找并返回该整数在数组中的索引位置。在主函数中定义一个包含10个元素的数组,并调用find_index函数查找某个整数的索引位置并输出。编写程序,创建一个Person类型的结构体数组,包含3个人的信息,并输出每个人的姓名和年龄。3、编写一个程序,要求用户输入5个整数,将它们存储在一个数组中,然后计算并输出这5个整数的平均值。5、编写一个程序,接受用户输入的一个字符串,然后统计字符串中数字字符的个数并做正序和倒序输出。

2025-03-28 16:42:02 166

原创 【嵌入式学习2】学生信息管理系统项目

通过文件I/O操作将学生数据保存到文件中,并在程序启动时加载数据。:将学生数据存储在动态链表中,而不是静态数组中。:实现基于姓名、年龄或性别的排序。

2025-03-24 23:19:00 444

原创 【嵌入式学习2】内存管理

int a =250;return 0;*p = 123;func(&a);return 0;

2025-03-24 23:05:36 987

原创 【嵌入式学习2】c语言重点整理

①指针大小与数据类型无关:无论指针指向什么类型的数据(int、char、double等),指针本身的大小只取决于系统的位数(32位或64位)。在图形用户界面编程中,回调函数常用于处理用户的输入事件(如点击按钮、键盘输入等)。在异步操作(如文件读写、网络通信)完成后,通过回调函数通知调用者操作已完成。在一些算法中,可以使用回调函数来提供自定义的处理逻辑,增强算法的灵活性。:通过指针加偏移量访问内存中的数据。:数组的每个元素是指针。:指向结构体变量的指针。:指向整个数组的指针。

2025-03-24 22:27:31 942

原创 【嵌入式学习2】结构体

结构体(struct)为用户自定义的特殊的复合的“数据类型”// 先声明结构体类型再定义变量名struct 结构体名 {成员列表struct 结构体名 变量名;// 在声明类型的同时定义变量struct 结构体名 {成员列表}变量名;例子:// 结构体类型的定义int age;// 先定义类型,再定义变量(常用)// 定义类型同时定义变量int age;

2025-03-24 16:28:08 308

原创 【嵌入式学习2】数组

/ 函数定义// 定义一个累加个数的变量,初始值为0int i = 0;// 循环遍历每一个字符,如果是'\0'跳出循环= '\0') {// 下标累加i++;return i;// 函数调用return 0;

2025-03-24 16:00:49 661

原创 【嵌入式学习2】指针

内存:房间地址:房间号表示所声明变量为指针类型【指针变量的类型比这个变量的类型多一个*】

2025-03-24 01:16:14 834

原创 【嵌入式学习2】函数

/ 函数定义void 函数名() {函数体// 函数调用函数名();

2025-03-23 22:34:31 288

原创 【嵌入式学习2】位运算 - 控制语句

使用if。

2025-03-23 21:46:29 404

原创 【嵌入式学习2】基础语法

define是C语言的预处理指令,用于在编译之前进行文本替换const是C语言的关键字,用于定义常量变量特性#defineconst实现方式预处理阶段的文本替换编译阶段定义的变量是否有类型没有类型,只是文本替换有明确类型是否占用内存不占用占用作用范围从定义到文件结束或下一个同名#undef与普通变量相同,取决于定义位置是否可修改不可修改(因为是文本替换)不可修改(但可以通过指针修改,不推荐)

2025-03-22 20:05:04 594

原创 【嵌入式学习2】C语言 - VScode环境搭建

目录## 语言分类## c语言编译器## VScode相关配置

2025-03-22 18:11:51 503

原创 【嵌入式学习】其他知识点

实际上CPU就是一组特殊的电路,一旦一种电路方案被设计出来,其实是可以重复利用的。电路设计的方案就是ip核。ip核是有知识产权的,使用别人的ip核就要付费。机器语言-> 汇编语言-->c语言-->c++ -> JAVA -> C# -> BLOCKLY -> chatgpt。的,就是最常用的20%的指令,占据了总的指令执行数量的80%的,任意复杂的指令其实都可以用简单指令的组合来完成。实际上CPU的指令集是遵守。

2025-03-22 17:22:13 354

原创 【嵌入式学习】计算机自动运行小组件

②由于任何一个操作码都对应8个操作步骤:确定输入数位为5的控制信号,4位确定操作码+1位确定操作步骤。【最后一条指令:为了对齐取指阶段需要用四条指令而补全的全零指令】添加计算机执行单元,使其按照顺序将相应的开关打开或者关闭。低三位:按顺序执行指令步骤【添加一个计数器自行加数】由于各个指令的取指阶段全部相同,可以使用同一套编码。修改数据位数,可以通过少量开关控制大量的开关数据。将以上四个阶段各个开关状态写成一个17位的数。①由于右侧有17个开关:确定输出位数位17。高两位:确定指令是哪一个。

2025-03-22 14:41:47 336

原创 【嵌入式学习】显卡显存 - 显示器

控制器从存储器中读取指令,通常从程序计数器(Program Counter,PC)指定的地址开始。如果指令涉及数据的读取或写入,控制器会通过地址总线和数据总线与存储器或I/O设备进行交互。控制器对读取的指令进行解码,确定指令的操作码(Opcode)和操作数(Operand)。根据操作码,控制器生成相应的控制信号,指挥运算器和存储器等部件进行操作。每次读取一条指令后,PC自动更新为下一条指令的地址。运算结果通常存储在寄存器或存储器中,供后续指令使用。运算器根据控制器的指令执行具体的算术或逻辑操作。

2025-03-22 13:40:23 144

原创 【嵌入式学习】核心组件 - CPU总线架构 - 内部ALU -外部内存

CPU:中央处理单元,由ALU、寄存器、时钟、控制单元组成,于RAM配合执行计算机程序。是一个更广泛的概念,通常指的是计算机系统中用于存储数据和程序的所有存储设备。内存:负责存储程序和数据,CPU需要一个内存管理单元来管理内存的读写操作。寄存器:负责存储数据和指令,CPU中有许多用来存储不同类型数据的寄存器。:用于存储固件或系统启动程序,数据不可更改或只能少量更改。:如硬盘、固态硬盘(SSD)、光盘等,用于长期存储数据。:主要是RAM,用于存储当前运行的程序和数据。

2025-03-22 12:53:19 953

原创 【嵌入式学习】8bit寄存器、ALU抽象设计 - 总线介绍

相比于位于CPU外部的内存(如RAM),数据需要通过系统总线传输到CPU。寄存器与CPU的执行单元(如算术逻辑单元ALU)直接相连,数据传输路径极短。分类:片内总线(CPU内部)、系统总线(连接CPU、内存和I/O设备)、I/O总线(连接外部设备)通常寄存器不存在Stored data这一个显示数据的模块,该原理图添加仅用于观察数据是否读入。官方解释:计算机系统中用于连接多个设备或部件,进行信息传输的一组公共信号线。这是一个只能实现前一个进位c为0的加法的ALU。总线、控制总线(控制信号如读写命令)

2025-03-22 00:57:46 426

原创 【嵌入式学习】触发器 - ADC - DAC

触发器基本概念:一种能够存储一位二进制信息的数字逻辑电路,其输出不仅取决于当前输入,还与之前的状态有关。常见触发器类型:①RS触发器:最基本的双稳态电路,包含两个输入(置位S和复位R)和两个输出(Q和非Q)。其特点是简单,但存在不确定状态(当S和R同时为高电平时)。:R(复位)和S(置位)。:Q和Q̅(Q的反相输出)。当S = 1且R = 0时,Q = 1,Q̅ = 0(置位)。当S = 0且R = 1时,Q = 0,Q̅ = 1(复位)。

2025-03-21 23:53:57 523

原创 【嵌入式学习】时钟 - 边缘触发锁存器

第三个锁存器:在确保地址选对的情况下,点击开关开启WE,并入Din开始写入数据。注意不同外设的时钟数不同,在编写芯片的时候需要注意这一点,分配clock。第二个与门:在确保地址选对的情况下,点下开关。1、时间换空间:串行输出,一个个输出。4、空间换空间:不用的空间回收回来。2、空间换时间:并行输出,并口屏。4、str(store)存的控制。第一个与门:负责选中地址的行和列。5、数据的输入 --> Din。3、ld(load)读的控制。3、时间换时间:调度算法。## EEPROM抽象图。

2025-03-20 23:17:35 745

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除