- 博客(51)
- 收藏
- 关注
原创 硬件电路设计(运放电路)
(Operational Amplifier,简称运放)是一种高增益、高输入阻抗、低输出阻抗的直流耦合电压放大器。是将晶体管、电阻、电容等有源和无源器件通过半导体平面工艺制作在同一块单晶硅芯片上,形成具有特定功能的模拟集成电路。简称是指以集成运算放大器为核心器件,配合外部元件(如电阻、电容、电感等)构成的具有特定功能的电子电路。
2025-08-01 07:45:00
2493
原创 硬件电路设计(基本元器件)
作用类型工作原理应用场景关键参数储能存储电荷和电能闪光灯、备用电源容量、耐压滤波滤除交流成分电源滤波、信号滤波容量、频率特性耦合传递交流信号级间耦合、音频耦合容量、耐压旁路提供低阻抗路径电源去耦、信号旁路容量、频率特性定时利用充放电特性延时电路、振荡器容量、精度。
2025-07-30 23:45:05
2635
原创 单片机(STM32-WIFI模块)
ESP12-F模组本质就是集成好的一个小板子,固件就是代码存储的地方,这个模组能做那么多事,就是按照固件里的程序执行任务,是开发这个模组的人员提前烧录进去的。GPIO0控制启动模式,低电平为下载模式,高电平为运行模式;TXD(22脚)为串口发送,RXD(21脚)为串口接收;运行模式下串口用于数据通信,下载模式下串口用于固件烧录;原理图设计保证了模式切换和串口功能的灵活性与可靠性。我们可以通过掰动三个开关调节WiFi功能,一定要注意选择的模式和对应的图一致。
2025-07-29 20:18:49
2682
原创 单片机(STM32-ADC模数转换器)
包含采样时间(ADC转采集输入电压的时间)和转换时间(ADC内部将采样到的模拟信号转换成数字值的时间)。ADC(Analog to Digital Converter,模数转换器)是将模拟信号(如电压)转换为数字信号(如二进制数值)的硬件模块。常见有14位、12位、10位、8位、6位等,12位ADC的输出范围是0~4095。把SAR当前寄存器的内容(数字量)转换成模拟电压,供比较器与输入模拟电压比较。1. SAR先把最高位(D7)设为1,其余为0,DAC输出对应电压。
2025-07-25 22:05:39
1944
原创 Qt(资源库和按钮组)
资源被打包进可执行文件或资源文件,无论项目拷贝到哪个环境、系统或设备,只要可执行文件在,资源都能被正确访问,不会因路径变化或缺失而出错。Qt的资源库(Resource System,.qrc文件)可以将图片、音频、UI文件等外部资源文件打包进项目,成为项目的一部分。通过.qrc文件为资源分配虚拟路径(如 :/images/logo.png),在代码中用虚拟路径访问资源,而不是硬编码磁盘路径。只需分发可执行文件(或带资源的安装包),不必单独拷贝图片等资源文件,避免“找不到图片”等问题。
2025-07-24 23:55:49
992
原创 Qt(基本组件和基本窗口类)
控件类型Qt信号Web事件典型用途Check Boxchange多选toggledchange单选(组内互斥)click操作触发这一部分主要是介绍,下一节将一些用法,最好保存一下随时查看。
2025-07-23 23:56:26
1308
原创 单片机(STM32-IIC)
只要有一个器件拉低 SDA 或 SCL,整条线上就是低电平,所有器件都能检测到这个低电平。这是 I²C 总线实现多主多从、仲裁和应答的基础。SHT20 是 Sensirion 公司推出的一款数字温湿度传感器。它采用超薄膜式湿度传感器和热敏电阻式温度传感器,在测量环境温度和湿度方面具有高精度和可靠性。I²C(两线制,SCL时钟线,SDA数据线)2.1V~3.6V温度 -40~125°C,湿度 0~100%RH温度±0.3°C,湿度±3%RH。
2025-07-19 08:00:00
3610
原创 单片机(STM32-时钟系统)
1. 时钟系统是STM32微控制器的核心基础,决定了各个模块的运行速度和精度。理解时钟源的分类(晶体、RC)、时钟树结构及其分配方式,有助于合理配置系统和外设的时钟,提高系统性能和稳定性。2. RCC(复位与时钟控制)模块是时钟系统的管理中枢。通过RCC寄存器,可以灵活地选择时钟源、配置分频、使能或关闭外设时钟,实现对功耗和性能的优化管理。3. 滴答定时器(SysTick)是Cortex-M内核自带的定时器,常用于系统节拍和延时。
2025-07-17 20:02:56
1381
原创 单片机(STM32-中断)
上升沿(Rising Edge):指数字信号从低电平(0)跳变到高电平(1)的那一瞬间。下降沿(Falling Edge):指数字信号从高电平(1)跳变到低电平(0)的那一瞬间。中断是一种让CPU在处理主程序时,能够及时响应外部或内部突发事件的机制。它具有异步性、高效性、优先级、自动性等特点,极大提升了嵌入式系统的实时性和可靠性。在STM32等单片机中,EXTI负责检测外部信号并产生中断请求,NVIC统一管理和分发中断,实现多源中断的高效处理。
2025-07-16 23:22:49
1923
原创 单片机(STM32-SPI通信)
连上线就很明确了第一个SPI连接单片机四个引脚,分别是时钟线,片选线和输入输出线,输入的数据会有一部分传给第二个SPI,因为第二个SPI是控制哪个数码管显示,第一个SPI控制显示的数字。在代码中我们是发送一个有两个数的数组,第一个数组的数据会被挤给第二个SPI,就是第一个SPI不管这个数据直接给第二个SPI,第二个数据是第一个SPI需要处理的,这样就实现对二极管的控制,所以我们发送给这样一个数组只能控制一个灯显示数据。(第二个SPI控制数码管亮灭的连线没有练完,连上不好看就算了,理解的时候不要以为没有)
2025-07-15 20:57:47
1664
原创 单片机(STM32-串口通信)
通信标准引脚说明通信方式通信方向UART(通用异步收发器)TXD: 发送端<br>RXD: 接受端<br>GND: 公共地异步通信全双工单总线(1-wire)DQ: 发送/接受端异步通信半双工SPISCK: 同步时钟<br>MISO: 主机输入,从机输出<br>MOSI: 主机输出,从机输入<br>SS: 片选同步通信全双工I2CSCL: 同步时钟<br>SDA: 数据输入/输出端同步通信半双工寄存器名称作用常见寄存器名典型操作数据接收寄存器存放接收到的数据。
2025-07-14 23:43:15
1962
原创 单片机(STM32-GPIO)
GPIO 全称是 General Purpose Input/Output,即通用输入输出端口。是单片机/微控制器上最基础、最常用的功能模块之一。每个GPIO引脚都可以被配置为输入或输出,用于与外部世界进行数字信号的交互。特性推挽输出开漏输出输出高电平主动输出需上拉电阻输出低电平主动输出主动输出高阻态无有并联线与不支持支持驱动能力强取决于上拉电阻应用普通IO/驱动负载I2C/中断/多机通信。
2025-07-10 20:29:11
1138
原创 单片机基础
IO(Input/Output,输入/输出)就是嵌入式系统与外部世界“交流”的通道,比如按钮、LED灯、传感器、蜂鸣器等。单片机,全称单片微型计算机(Microcontroller Unit,简称MCU),是一种将CPU、内存(RAM/ROM)、输入输出接口(I/O)、定时器/计数器、串口等功能集成在一块芯片上的微型计算机。51单片机51单片机是指以Intel 8051为核心的单片机系列,属于8位单片机。(八位的不一定51单片机)诞生较早,结构简单,指令系统精炼,适合入门学习和基础控制应用。51单片机。
2025-07-09 20:36:29
2057
原创 Qt(信号槽机制)
Qt不可能内置所有执行的动作代码,特别是复杂的动作,需要开发者手动编写槽函数,这种方式也是所有连接方式中使用最多的。槽函数实际上是一种特殊的成员函数,在声明的时候权限的作用主要是修饰其作为普通成员函数的使用效果,不影响信号槽的连接效果。自定义槽函数的性质:(1)本质是普通成员函数(2)访问权限可以是任意一种,但是最好还是public slots:或private slots:(3)参数要和信号函数一致(4)可以被手动调用,和正常成员函数一样可以直接被调用(5)必须是QObject的子类成员。
2025-07-07 23:58:29
1573
原创 Qt项目基础
1.进入Qt Creator,点击new project创建项目2.选择Application,再选择Qt Widgets Application,点击choose3.选择项目路径,路径和项目名字不能有中文和空格,纯英文就行,确定好后点击下一步。选择最好在别再C盘存储,在别的盘找个合适的位置创建一个目录专门存放QT项目。4.确保都点上✓号,点击下一步4.类信息基类选择QDialog,✓号取消,不选择!点击下一步5.点击完成6.更改7.后面如果需要打开别的项目在首页右侧就可以打开。
2025-06-28 16:35:41
1477
原创 C++补充知识+专题思维导图
NULL在源码中就是一个0,因此可能会出现一些二义性的问题。在C++11中使用nullptr代替NULL,作为空指针的表示方式,在C++中,可以用作空指针常量,表示指针不指向任何有效的内存地址。使用auto关键字可以推导类型,C++11引入的。decltypt可以推导表达式的类型,需要注意,decltypt只会分析表达式的类型,不会具体计算表达式的值。C++11中引入了列表初始化语法,可以使用{}对对象进行初始化。C++11可以对整数进行不同进制的输出。
2025-06-27 08:00:00
989
原创 C++(模板与容器)
使用模板可以让程序员编写与类型无关的代码,专注于算法设计,程序运行的时候可以是任何类型,共用一套算法。模板是泛型编程的基础,泛型编程的目的是发明一种语言机制,能够帮助实现一个通用的标准模板库STL。
2025-06-26 20:34:16
868
原创 C++(智能指针)
摘要:本文系统介绍了C++智能指针的核心概念与技术要点。首先阐述智能指针作为RAII对象的本质及其自动内存管理机制,对比了传统裸指针的缺陷。然后详细解析四种智能指针类型:auto_ptr(已废弃)、unique_ptr(独占所有权)、shared_ptr(共享所有权)和weak_ptr(观察者模式),重点说明各自特性与使用场景。通过Animal类示例代码演示关键操作(get/reset/拷贝控制等),特别剖析shared_ptr的引用计数机制。最后展示了如何实现自定义Shareptr类,包含构造函数、引用计
2025-06-25 21:41:59
1285
原创 C++(异常处理)
继承的是所有异常类型的基类,开创一个新的异常类型分支,然后重新定义异常信息。public:// 覆盖what函数// throw():异常规格说明// 表示此函数不会出现任何异常的抛出const char * what() const throw(){ //自定义类型异常return "自定义异常";if(a == "1" || b == "1"){ //输入字符串是1//抛出异常return 0;string a;string b;
2025-06-24 19:29:50
1323
原创 C++(面向对象编程——多态)
定义类的时候,当一个类中有虚函数的时候,编译器会为这个类分配一个表记录这些虚函数,这个表就是虚机类表。简单理解就是你创建一个类的时候,如果有使用virtual修饰函数,就认定这个类中存在虚函数,就会自动分配一个表(虚机类表)来存放这个类的虚函数,是把你这个类所有的虚函数都放在这一个表里。所以虚机类表是一个类只可能存在一个。当继承。
2025-06-24 12:31:59
1293
原创 C++(面向对象编程——继承)
在类中在派生类中在类外public可以直接调用可以直接调用可以直接调用protected可以直接调用可以直接调用不可以直接调用private可以直接调用不可以直接调用不可以直接调用。
2025-06-21 17:36:58
959
原创 C++(运算符重载)
C++中使用关键字friend可以在类外访问所有的成员,包括私有成员(之前提到过封装的核心思想是隐藏内部实现细节,通过公共接口控制访问),所以友元可以突破封装的限制访问数据,盲目使用会导致程序稳定性降低,所以使用友元必须慎重。全局函数访问私有成员,可以配合运算符重载使用,友元函数是一种在类内“声明”,类外定义的非成员函数,但是没访问类内所有的成员。友元函数可以做到修改私有成员变量2.友元类当B是A的友元类时,类B就可以访问类A的所有成员, 友元成员函数二.函数运算符重载C++中
2025-06-19 23:50:40
1026
原创 C++(面向对象编程——常用关键字)
指针是一种特殊的指针,在类内指向当前类的外部对象。在类的成员函数中,可以使用this指针来访问当前对象的成员变量和成员函数。通过this指针,可以避免在成员函数中使用与参数名或局部变量同名的成员变量时产生歧义。在类的成员函数中,this指针始终指向调用该函数的对象。可以这样理解,this代指当前操作的对象。下面这个程序就会发现,类内调用的this指针和对象的地址是一样的。
2025-06-18 16:10:04
1521
原创 C++(面向对象编程)
内存泄露?内存泄露指程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统内存浪费,导致程序运行速度减慢或崩溃。这类问题在长时间运行的应用中尤为严重。若果不解决,运行过程总会堆积这样的垃圾空间。析构函数这个时候就可以使用析构函数来解决;析构函数(destructor)是与构造函数对立的函数也是一种特殊的成员函数如果程序员不手写编译器会自动添加一个空的析构函数;析构函数是用来对对象资源的回收,关闭和释放。~Cat(){}这也没参数啊,怎么做到的?
2025-06-17 21:03:57
1557
1
原创 C++(从C到C++)
int a = 10;int &b;//错误int a = 10;int b = 90;int &c = a;//c已经是a的别名c = b;//错误。
2025-06-16 21:16:01
918
原创 网络编程成果验收(小项目——制作工业数据采集网)
最好自己尝试写一下项目,实在不会可以看一下我录的视频:【基于C语言Linux系统实现的工业数据采集项目】https://www.bilibili.com/video/BV18nMmzXE7q?获取项目源码:通过网盘分享的文件:project.zip链接: https://pan.baidu.com/s/1tHMcaPX4xQSZizP923kUYA?pwd=3588 提取码: 3588。
2025-06-16 00:55:34
1226
原创 网络编程(HTML简单教学)
定义:块标签独占一行,可以设置宽高,内边距,外边距等属性,默认为父容器的100%。定义:不会独占一行,多个行标签可以在同一行显示,宽度由内容决定,不能设置宽高。定义:结合了行标签和块标签的特性,可以像标签一样在同一行显示,可以设置宽高。简单网页制作:华为非凡大师参数。
2025-06-16 00:38:50
370
原创 网络编程(HTTP协议)
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网应用层通信的核心协议,定义了客户端(如浏览器)与服务器之间的数据交互规则。
2025-06-16 00:01:40
1736
原创 网络编程(数据库:SQLite)
数据库安装SQLITE的存储结构:B树(了解就行)1.测试数据库是否安装(查看版本)2.数据库安装命令链接: https://pan.baidu.com/s/1KbVdvj7fmkYiDYcS_d5Mdw 提取码: 3528(2)()解压源码包:tar xf sqlite-autoconf-3460000.tar.gz3.图形化工具的安装数据库的概念数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2025-06-11 09:43:13
1421
原创 网络编程(Modbus进阶)
Modbus RTU(先学一点理论)概念Modbus RTU 是工业自动化领域,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以的特点成为工业控制系统的通信标准。包括RS232/485等工业总线协议。与Modbus TCP区别的是RTU没有报文头MBAP字段,但是在尾部增加了两个CRC检验字节(CRC16),因为网络协议中自带校验,所以在TCP协议中不需要使用CRC校验码。
2025-06-10 23:18:03
1228
原创 网络编程(modbus TCP)
功能码名称请求长度响应长度特点01读线圈12字节9+字节返回位打包数据02读离散输入12字节9+字节只读开关量输入03读保持寄存器12字节9+字节最常用功能04读输入寄存器12字节9+字节只读模拟量输入05写单个线圈12字节12字节请求响应相同06写单个寄存器12字节12字节请求响应相同15写多个线圈13+字节12字节高效批量操作16写多个寄存器13+字节12字节高效批量操作工具使用。
2025-06-10 09:36:44
2280
1
原创 网络编程(UDP编程)
创建套接字 (socket)------------------------------------------》有手机。关闭套接字(close)------------------------------------------》接收完毕。指定网络信息-----------------------------------------------》有号码。绑定套接字 (bind)------------------------------------------》插卡。
2025-06-09 00:20:44
1376
原创 IO进程(Linux IO模型)
selectpollepoll监听个数一个进程最多监听1024个文件描述符由程序员自己决定百万级方式每次都会被唤醒,都需要重新轮询每次都会被唤醒,都需要重新轮询红黑树内callback自动回调,不需要轮询效率文件描述符数目越多,轮询越多,效率越低文件描述符数目越多,轮询越多,效率越低不轮询,效率高原理每次使用select后,都会清空表每次调用select,都需要拷贝用户空间的表到内核空间。
2025-06-07 12:05:08
1218
原创 网络编程(计算机网络基础)
(1)IP地址是Internet中主机的标识(主机的身份证,如果有人要我给你送一个苹果(数据),你没有身份证,你怎么证明你是我要找的人)(2)Internet中的主机要与别的机器通信必须具有一个IP地址(3)IP地址为32位(IPv4)或者128位(IPv6)(4)IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。NAT设备(网络地址转换)功能。
2025-06-03 22:56:41
1595
原创 IO进程(线程及线程间通信)
(1)线程是一个轻量级的进程,为了提高系统的性能引入线程。(2)线程和进程都参与统一调度。(3)在同一个进程中可以创建多个线程,共享进程资源。
2025-06-02 21:25:39
1140
原创 IO进程(进程间通信 IPC)
无名管道(pipe),有名管道(fifo),信号(signal),共享内存(share memory),消息队列(message queue),信号等集(semaphore set)
2025-05-30 10:38:52
1221
原创 IO进程(进程 Process)
编译好的可执行文件,存放在磁盘上的指令和数据的有序集合。由此可见程序是静态的,没有执行的概念。是程序的一次执行的过程,是一个可调度的任务,也是执行一个程序所分配的资源的总称。由此可见,进程是动态的,包括创建,调度,执行和消亡。
2025-05-28 15:47:19
1886
原创 IO进程(文件IO)
文件IO又称为系统IO,是系统调用,是操作系统提供的接口函数。如图:标准IO:你的程序在在运行的时候,如果想要读取磁盘内容,就要使用C库函数接口,然后通过内核的系统调用取去驱动程序把磁盘文件传输给你的程序;如果这个时候你使用文件IO,就不再调用C库函数接口,而是直接使用系统调用接口,速度上是快了很多,但是也是有别的缺点(后面说)。1.2 特点没有缓冲机制,每次调用都会引起系统调用,(标准库中的函数会在用户空间维护一个缓冲区,当围绕文件描述符进行操作,非负整数(>=0),依次分配。
2025-05-27 18:45:08
1349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅