自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (7)
  • 收藏
  • 关注

原创 Cadence——生成Gerber制板文件

NC Drill选择生成圆形的钻孔文件,若电路板中使用了椭圆孔、矩形或者长条形的开槽孔,就需要出一个铣刀数据文件,单独生成NC Route文件。生成Artwork:Manufacture > Artwork,点击select all,然后点击create artwork,最后点击OK。出钻孔图和光绘图前,先设置 钻孔文件和gerber文件保存的文件夹,这样生成的文件不会混乱。再次对电气错误进行检查:Display -->Status。点击Drill,生成钻孔文件。电气错误的检查:点击。

2024-03-26 19:53:35 435

原创 Cadence——导出BOM清单

Cadence导出BOM清单

2024-03-26 14:40:15 377

原创 临界资源访问一个有趣现象

当一个线程获取到互斥锁后,其他线程若要进入临界区会被阻塞,直到该线程释放锁。先看一个例子:我们创建10个线程,每一个线程对同一个地址上的值都进行加一100000次,那最后结果是不是1000000呢?(Mutex):适用于锁住的内容多,(例如红黑数的增加节点操作),切换线程的代价小于等待的代价。(spinlock):适用于锁住的内容少,(例如就执行++操作),切换线程的代价大于等待的代价。但是有时也会出现一个线程的操作被其他线程打断,这样,两次的自加操作只能实现一次自加的效果。:得有CPU指令的支持。

2023-12-14 10:45:40 192 3

原创 五、Qt中的常用类

QString是Qt中的字符串类,与C/C++不同的是,不再使用ASCII编码,而使用编码。因此一个字符不是8位的char,而是16位的QChar,这就是为什么之前一个汉字占用一个字符的原因。QString几乎向前兼容所有std::string的API。

2023-10-24 22:15:12 542

原创 四、基本组件

QAbstractButton是所有按钮类的抽象基类。QAbstractButton常用属性如下:按钮类常用信号:多个按钮组件的信号槽可以使用QButtonGroup进行分组后连接。// 构造函数// 需要手动管理堆内存对象// 添加按钮到按钮组// 参数1:按钮对象// 参数2:编号这些信号对应了单个按钮的四种触发情况,参数1用于判断哪个按钮被触发。需要注意的是,QButtonGroup会导致QCheckBox变单选,此时需要手动关闭互斥性。

2023-10-21 17:36:23 293

原创 三、信号与槽

【例子】点击按钮,窗口向右侧移动10个像素,向下移动10个像素,同时输出当前的窗口坐标。分析:发射者:按钮信号函数:点击接收者:窗口槽函数:自定义Q_OBJECTpublic:~Dialog();private:private slots: // 槽函数// 头文件声明btn = new QPushButton("关闭",this);// 发射者:按钮// 信号函数:点击// 接收者:窗口// 槽函数:自定义。

2023-10-21 17:23:54 196

原创 二、UI入门

设置样式表离不开颜色值,在计算机中颜色是通过红绿蓝三种色彩叠加而成,每种色彩是8位的深度,即0-255分别表示从暗到亮,例如(255,0,0)表示正红色,(255,255,255)表示纯白色…btn要设置为栈对象,让其在程序运行期间一直存在,而不是一闪而过。● width : const int 宽度(单位:像素,后文同)这个属性的值是一个QSS/CSS语法的字符串,可以指定组件的样式。横坐标,在计算机中原点在左上角,x轴正方向向右。Dialog()中可以调用到。纵坐标,y轴正方向向下。

2023-10-21 17:18:24 308

原创 一、Qt简介

另一方面,由于Qt良好的特性,因此在嵌入式行业也应用广泛,包括消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。.user文件在提交项目时删除,因为每个计算机都是自己生成的此文件,且互不通用。删除.user文件后导入项目只需要双击.pro文件即可。工作目录主要存放的是源代码文件,构建目录存放的是项目编译生成的文件,如果在排查了各种情况外,项目仍然无法正常编译运行则可尝试取消。● 把光标停留到要查询的内容上,双击键盘F1。,此时构建目录会直接整合工作目录中。

2023-10-21 17:14:25 5095

原创 Qt实现一个电子相册

Qt实现电子相册,功能如下: 1. 在窗口中可以显示图片,并且能够通过两个按钮进行图片的前进和后退的顺序切换。 2. 有一个按钮,通过这个按钮可以从所存图片资源中随机选取一个图片进行展示 3. 通过按钮可以控制图片自动轮播顺序切换的开始与停止, 4. 显示当前系统的时间。

2023-10-21 16:57:29 1073

原创 socket简介

套接字(Socket)实质上就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,为应用层进程利网络协议交换数据提供了相应机制。套接字出于承上启下的作用,向上连接应用进程,向下则连接网络协议栈,不仅是应用程序通过网络协议进行通信的接口,也是应用程序与网络协议栈进行交互的接口。

2023-10-07 22:03:45 1076

原创 网络相关的基础知识整理

● TCP:用来检测网络传输中差错的传输控制协议● IP:专门负责对不同网络进行互联的互联网协议(网际协议)

2023-10-06 21:54:10 290

原创 Modbus协议介绍及Modbus TCP

1)Modbus RTU 运行在==串口==上的协议,采用==二进制==的表现形式以及==紧凑型数据结构==,==通信效率高==,应用比较==广泛==2)Modbus ASCII运行在==串口==上的协议,采用==ASCII码==进行传输,并且==利用特殊字符作为字节开始和结束的标志==,==传输效率远远低于Modbus RTU== ,只有通信数据量比较少时才会考虑它3)Modbus TCP运行在以太网上的协议

2023-09-12 21:00:49 1433

原创 STM32屏幕计时器

原因是:程序大部分时间都处于延时状态,而你在按下按键时是处在延时状态,延时状态程序收到中断信号,保存现场,进行中断处理函数的执行,此时虽然时间变量都给清零了,但是没有立即写回屏幕显示时间,中断返回,恢复现场,主程序又回到延时状态,此时程序执行到了下面这里👇。在该函数中要对时、分、秒变量进行清零,同时更新屏幕显示,若不重新写回屏幕(没有上面的地183行代码),则会出现下面情况,按下按键后不能清零,而是从第一秒1秒开始计时👇🤔🤔🤔。,程序运行之后自动计时,当按下按键,计时清零,按下按键采用外部中断。

2023-09-05 21:51:48 2627 1

原创 项目——群英阁(galaxyHub)

群英阁galaxyHub利用UDP通信实现局域网内的多人在线聊天(即群聊),即所有用户处在同一局域网下,多个(大于等于2)用户在客户端登录系统,用户发送消息之后其他用户都可以在其终端收到发送者的用户信息极其发送的消息。我们知道QQ群聊中不仅有群聊的功能,还可以限定群中某个用户进行私聊(指定在线用户私法消息),以及群通知的功能,该项目也仿照QQ添加了私聊以及系统通知的功能。该项目的实现可以对UDP通信,数据结构,进程线程进行综合运用。

2023-09-03 17:27:50 371

原创 网络编程——套接字和字节序

这个名称的格式独立于套接字的地址族,它是有效的服务器的本地地址。这些传入的请求必须通过各种不同的协议层向上找到自己的通路,然后等待服务器侦听套接字。这个套接字也提供两个方向上的数据传送,但不像数据流套接字,它们不提供消息到达的保证。通信连接的一-端,两个相互通信的进程,每个都需要-一个套接字描述它们之间的通信连接的端点。套接字可以看成是一种特殊的管道,与管道不同的是套接字所能容纳的数据不受限制。BSD套接字接口是BSD的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制。

2023-08-25 21:20:24 540

原创 网络编程——网络基础知识

C类ip同一网段的主机号只有256-2=254个可以用,不够,而B类IP的主机号有65536-2=65534个可以分配,又太多。这时需要拿出B类IP的部分主机号作为子网号,只留后面的10位作为主机号。3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议。(LAN):本地的网络,只能实现小范围短距离的网络通信。1、适合于对传输质量要求较高,以及传输大量数据的通信。2、在接收到数据,给出应答较困难的网络中使用UDP。三级地址组成:ip=网络号+子网号+主机号。

2023-08-23 20:23:32 268

原创 信号灯集和共享内存的综合应用小例子

即想要进程打印信息必须要另一进程完成数组内容的倒置,然后该进程倒置完成一次之后不能就马上再倒置,要打印进程完成对上次倒置内容的打印才可以。要求:使用信号灯集和共享内存实现:一个进程对共享内存存放数据"Nice to meet you"循环倒置,一个进程循环输出共享内存的内容,要确保倒置一次打印一次。分析:这两个进程可以写成两个源文件,一个文件对应一个进程,从题目要求可以看出,这两个进程实现的是一种进程间的。

2023-08-19 20:58:59 125

原创 Linux编程——进程间通信(信号灯集、消息队列)

System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。而Posix信号灯指的是单个计数信号灯。🚨注意:第一次创建信号灯集,semid为0,不能用,要排除。故第一次创建完之后要删除semid为0的信号灯集,重新创建。用法:第四个参数是一个共用体,需自己创建,共用体第一个参数就是信号灯的值。获取信号灯值:函数semctl(semid, 0, GETVAL)的返回值。删除系统信号灯集:ipcrm -s semid。通过信号灯集实现共享内存的同步操作。

2023-08-15 21:30:06 271

原创 LinuxC编程——进程间通信(二)(信号、共享内存)

进程间通信:信号的使用以及共享内存的创建

2023-08-14 21:12:03 213

原创 LinuxC编程——进程间通信(一)(管道)

1、早期通信:无名管道(pipe),有名管道(fifo)、信号(sem)2、system V IPC:共享内存(share memory) 、信号灯集(semaphore)、消息队列(message queue)3、BSD:套接字(socket)

2023-08-12 20:25:03 322

原创 LinuxC编程——线程的同步与互斥

我们知道,一个进中的所有线程共享进程的资源,所以可以通过在进程中定义全局变量来完成进程中线程间的通信,但是,当在同一内存空间运行多个线程时,要注意一个基本的问题,就是不要让线程之间互相破坏。例如,我们要实现两个线程要更新两个变量的值,一个线程要把两个变量的值都设成0,另一个线程要把两个变量的值都设成1。如果两个线程同时要做这件事情,结果可能是,一个变量的值是0;另一个变量的值是1。

2023-08-11 21:41:46 334

原创 LinuxC编程——线程

是一个轻量级的进程,为了提高系统的性能引入线程。进程与线程都参与cpu的统一调度。在同一进程中创建的所有线程共享该进程的地址空间线程相关的函数接口

2023-08-10 22:08:07 183

原创 LinuxC编程——进程

进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。练习:通过父子进程完成对文件的拷贝(cp),父进程从文件开始到文件的一半开始拷贝,子进程从文件的一半到文件末尾。程序一次执行过程,是动态的,包括创建、调度、执行以及消亡,它是一个独立的可调度的任务。注:exit与return的区别⭐⭐。exit:会刷新缓存。

2023-08-10 21:06:18 1017

原创 LinuxC编程——高级文件操作

当使用别人的函数时除了包含头文件以外还要有库头文件:函数声明、结构体等类型定义、头文件、宏定义库:就是把一些常用函数的目标文件打包在一起,提供相应函数的接口,便于程序员使用;本质上来说库是一种可执行代码的二进制形式由于windows和linux的本质不同,因此二者库的二进制是不兼容的。

2023-06-10 18:48:21 980 3

原创 LinuxC编程——文件IO

在C语言的标准IO库中的库函数,如fclose、fopen,、fread、fwrite,提供的是高层服务;而Linux的文件I/O调用提供的是底层的服务,底层的服务不提供缓冲而直接进入操作系统。创建出来的文件权限为指定权限值&(~umask) //umask为文件权限掩码。功能:向指定文件描述符中,写入 count个字节的数据。功能:从一个已打开的可读文件中读取数据。练习:实现Linux下的cp命令。flags:打开文件的方式。文件IO文件打开权限对比。功能:设定文件的偏移位置。参数:fd:文件描述符。

2023-06-04 20:01:01 487

原创 LinuxC编程——标准IO

功能:从stream文件流读取nmenb个数据项存放至ptr所指的数组中,其中每一项数据长度为size大小,故所读取总字节数为size*nmemb。方法一:循环往缓冲区中放入固定大小的数据,直到达到行缓冲满,看一共存入了几个固定大小的数据,从而可算出行缓冲的大小。功能:把以空字符(\0)结尾的字符串输出到指定文件流中,末尾的空字符(\0)并不输出。功能:从ptr所指的数组中写出nmemb个数据项至stream指定的流。功能:将指定的文件流重定向到打开的文件中。参数:stream:文件流。

2023-06-04 17:46:33 799

原创 学生成绩管理系统(C语言有结构体实现)

本文章介绍了一个通过C语言实现的一个简单的学生管理系统,该系统要是使用结构体数组来管理学生成绩数据的,通过该系统的练习能够对结构体的相关知识有更好的理解,提高逻辑思维能力

2023-05-27 13:41:53 5124

原创 C语言——存储类型

存储类型存储类型有:auto static extern register

2023-05-23 20:18:14 510

原创 C语言——自定义数据类型

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义。struct 结构体名数据类型 成员变量1;数据类型 成员变量2;数据类型 成员变量3;...举例:构造一个新的数据类型叫student,用来描述学生。int age;struct 结构体名 {成员变量;struct 结构体名 变量名;int age;struct 结构体名 {成员变量;} 变量名;int age;} per1;

2023-05-23 19:28:59 1165

原创 C语言——函数

函数是一个可以完成特定功能的代码模块,其程序代码是独立的,通常有返回值,也可以没有。功能:函数要实现的功能。参数:在函数声明和调用时定义的遍历,它用于传递数据给函数。

2023-05-21 22:55:45 582

原创 C语言——指针

存储类型 数据类型(* 指针变量名)[列数];例如:p可以代替进行元素访问,但本质不同,p是指针变量,a是地址常量。把p进行运算的时候,例题中情况要3个单位3个单位进行运算。访问数组元素地址(a[i][j]的地址):*(p+i)+jp[i]+j访问数组元素值:(p+i)+j)*(p[i]+j)例如:用数组指针遍历二维数组。i < 2;} return 0;练习:有一个班,3个学生,各学4门课,计算总平均分以及输出第n个学生的成绩。

2023-05-16 22:56:03 11575 4

原创 C语言——数组

存储类型 数据类型 数组名[元素个数];例如:(auto) int a[5];数组名:代表数组的首地址,a是地址常量,不能为左值,不能被赋值。数组定义方法:(1)数组名定义规则跟变量名相同,遵循标识符命名规则。(2)数组名后使用方括号括起来的表达式常量,表示元素的个数。(3)常量表达式中可以包含常量和符号常量,不能包含变量。存储类型 数据类型 数组名[行数][列数];例如:int a[3][4];

2023-05-15 22:45:19 572

原创 C语言——控制语句

控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。

2023-05-15 22:10:32 788

原创 C语言——输入输出

功能:向终端输出一个字符参数:c:要输出字符的ASCII值返回值:要输出字符的ASCII值。当输出错误的时候,返回EOF(end of file)文件结束符号。功能:向终端输入一个字符参数:无返回值:输入字符的ASCII值。如果发生错误返回EOF。#include功能:按指定格式向终端输出参数:format:用双引号括起来的格式控制串和输出表。返回值:输出字符的个数(不常用)功能:按格式从终端输入参数:同printf返回值:正确输入数据的个数。

2023-05-13 21:51:33 1924

原创 C语言——运算符和表达式

所谓表达式就是指由运算符、运算量和标点符号组成的有效序列,其目的是说明一个计算过程。表达式可以独立成语句:表达式;运算符按功能分为:算术运算、赋值运算、关系运算、逻辑运算、位运算以及其他运算符。

2023-05-13 17:03:25 839

原创 C语言——数据类型

​ int a=0;​ int a;​ a=0;1.4 局部变量和全局变量(1)生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。也就是存活的周期时间。时间维度。(2)作用域:变量可以起作用的范围。空间维度。(3)内存的五个区域:局部变量全局变量定义位置函数体内部函数体外部存储位置栈区全局区生命周期同函数体共存亡同整个程序共存亡作用域作用于函数体内部作用于整个程序初值未初始化时,是一个随机值未初始化时,值为0int a;return 0;

2023-05-13 16:59:45 600

原创 C语言的词法符号

char(字符型) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度浮点型) signed(有符号) unsigned(无符号) struct(结构体) union(共用体) enum(枚举) void(空类型)运算符是表示运算的词法符号,按功能分为:算术运算、逻辑运算、关系运算、赋值运算、位运算和其他运算符。:auto(自动型) static(静态) extern(外部) register(寄存器)(2) 赋值运算符:= += -= *= /= %=

2023-05-13 16:58:09 976

原创 Ubuntu下简单编程步骤和gcc编译器

创建一个.c文件进入C程序文件vi hello.c编写C语言程序保存编辑过的C文件:wq编译执行程序./a.out。

2023-05-13 16:57:16 1034

原创 计算机数据表示和数据转换

送入计算机的数字、字母和符号等信息必须转换成0、1组合的二进制形式形式才能被计算机所接收、存储和运算。能够进行计算的数据并且能得出一个明确的数值叫数值数据,其余信息是非数值数据。数值数据的计数方式是进位制。凡是按进位的方式计数的数制叫做进位计数制,简称进位制。计算机种比较常用的进制数有十进制、二进制、八进制和十六进制。概念了解:基数:是指该进位制中所允许选用的数码的个数。例如十进制是10。位权:每一位上权重例如:123=100+20+3=1101+310^0。

2023-05-13 16:55:05 930

原创 Git—远程仓库操作

git工具实现对远程仓库的操作

2023-05-12 22:15:48 886

利用Qt使用TCP通信实现多人在线聊天室

利用Qt使用TCP通信和SQLite数据库实现多人在线聊天室,有客户端和服务器

2023-10-29

家庭安防与环境监测系统代码 关键词:WiFi;MQTT;家庭安防与环境检测;微信小程序

家庭安防与环境监测系统的代码。系统选择ESP8266-NodeMCU作为主控模块,其他还包括各种传感器模块、声光报警模块、视频监控模块。软件部分包括数据采集、数据上传云平台、本地声光报警、微信预警消息推送、微信小程序、远程视频监控。结合WiFi技术、MQTT技术、微信小程序开发技术以及内网穿透等技术,在功能上能够实现本地和远程的家庭环境监测与安防。

2022-07-18

mqttfx-1.7.1-windows-x64

MQTTfx,一款MQTT客户端软件,支持发布和订阅

2022-06-20

智能家居项目资料.zip

src是服务端项目源码,另一个是打包好的QT实现的客户端

2021-07-19

简单饮食推荐源码.zip

简单饮食推荐项目的微信小程序源码

2021-04-19

关于《传闻中的陈芊芊》电视剧的简单网页设计

这个文件是关于《传闻中的陈芊芊》电视剧的一个静态网页简单设计,文件中包含图片和视频素材,html文件,css文件,js文件

2020-07-13

tkinter控制界面.zip

本代码是通过python中tkinter库进行简单界面设计,实现一个控制界面。利用单组件与多组件的布局与管理,包括按钮,文本框,背景等,能够对文本框中的数值进行对相关参数的自由调控。

2020-04-23

代码实现Android文件浏览器

代码实现Android文件浏览器,以列表形式展示系统中存储的文件,排序规则为:文件夹在前面,文件在后面,如果同为文件夹或文件,则按字母顺序排列。文件夹和文件显示不同的图标,单击文件夹,可以进入下级目录并展示。应用顶部显示当前所在目录。

2020-04-23

空空如也

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

TA关注的人

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