自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大脑曝光

一起学习,共同进步!

  • 博客(109)
  • 资源 (13)
  • 收藏
  • 关注

原创 STM32汇编启动文件,F1与F4启动文件比较

【代码】STM32汇编启动文件,F1与F4启动文件比较。

2023-12-13 10:23:37 578

原创 C++笔记

在C++中,友元函数(friend function)是在类的声明中被声明为友元的非成员函数。友元函数可以访问类的私有成员和受保护成员,即使它们不是类的成员。通过友元函数,我们可以允许其他函数或类直接访问另一个类的私有或受保护成员。下面是一些关于友元函数的特点和用途:友元函数的声明通常出现在类的内部,但不是类的成员函数。它可以在类的任何地方进行声明,例如在公共、私有或保护部分。友元函数的定义必须在类外部进行,与类的定义分开。友元函数在其定义中使用类的对象作为参数来访问类的成员。

2023-11-23 22:07:02 1096

原创 QT中样式表常见属性与颜色的设置与应用

要获取QCheckBox控件的样式表(QSS)中设置的颜色,你可以使用QCheckBox对象的styleSheet()函数获取当前应用于它的样式表。然后,你可以解析样式表字符串以提取所需的颜色信息。在Qt中,可以使用颜色来设置样式表(QSS)中的各种元素的外观。在示例中,我们检查样式表中包含"color:"、"background-color:"或"border-color:"的项,并提取冒号后面的值作为颜色值。在Qt中的样式表(QSS)中,有一些特定的英文单词和关键字用于指定不同的样式属性。

2023-11-23 22:05:41 2491

原创 MII、RMII、 SMII、GMII、RGMII、SMI接口介绍

这几种接口是我们常说的网卡中应用的接口,应用于MAC和PHY直接的通信接口,符合IEEE定义的标准,不同厂家生产的网卡也都是按照标准生产的,所以我们能直接换网卡使用。

2023-10-21 14:39:39 798

原创 存储器IP核与DDS信号发生

时钟--------------------------------------------------------------------------------信号发生器不断在时钟的驱动下,计算出存储表中数据的地址,取出数据送到DA转换器转换,进而生成一个频率和相位可控的信号发生器。频率控制字reg—相位累加器—相位偏移—信号存储表—DA转换器。信号存储表:存储一定深度和位数的数值,是模拟信号的离散话采样值。频率控制字:控制相位累加器的加数值,表示每次间隔几个点取值。相位控制字reg————————|

2023-09-05 10:28:45 94

原创 基于串口校时的数字钟设计

规划好每一根信号线的时序再写,每个部分一个信号,不能多个部分驱动一个信号。

2023-09-04 14:53:56 691

原创 按键消抖与仿真源文件中的随机数

在FPGA中可以通过对信号的快速精准判断,只需要根据电平持续时间来解决抖动问题,按键按下一般会有20ms以上的电平平稳时间,就是通过按键的边沿开始计算,只要20ms中没有多个边沿触发,就说明不是抖动。在C程序中一般通过延时函数解决,根据按键速度,一般延时20ms之后再重新对引脚判断是否真正按下,来解决抖动问题。由于按键的机械弹簧结构,在按键按下与释放的过程中,存在类似接触不良,断断续续的信号,导致电平信号的抖动。{$random(2)} % 10000000 :对随机数取绝对值后再取余,限制其范围。

2023-08-30 15:52:03 105

原创 串口接收数据-控制LED灯

串口接收8字节数据,2字节头+4字节time+1字节LED+1字节尾。通过串口接收数据,对数据分析,控制8个LED灯按照设定时间闪烁。分析到一帧完整数据就可是提取并设置LED闪烁样式。

2023-08-29 19:43:47 1909

原创 ESP8266固件烧录

烧写工具下载链接:https://www.espressif.com/support/download/other-tools。选择好要烧录的固件文件,并设置烧录地址,根据固件大小进行设置。此时通过REST复位引脚复位,8266进入烧写模式。此时通过REST复位引脚复位,8266进入烧写模式。烧写通过串口烧写,波特率设置115200。也可以在下面固件资料中下载。选择好端口下载就可以了。设置参数如上图所示。

2023-08-27 16:48:22 215

原创 段错误(核心已转储)定位错误位置

由于程序运行访问 不存在、系统保护或只读的内存地址,导致程序错误异常退出,操作系统在程序退出时把当前程序运行的内存状况存储到core文件中,并报告发生段错误(核心已转储)。

2023-08-15 17:08:05 703

原创 Web服务器项目一

这一通信过程首先要客户端通过TCP协议的三次握手建立与目标Web服务器的连接,然后HTTP协议生成针对目标Web服务器的HTTP请求报文,通过TCP,IP等协议发送到目标Web服务器上,然后目标Web服务器通过HTTP协议生成响应数据,通过TCP/IP等协议发送给客户端。两种高效的事件处理模式:Reactor和Proactor,通常同步IO模型用于实现Reactor模式,异步IO模型用于实现Proactor模式,但也可以通过同步IO模拟出Proactor模式。区别在于工作线程做的事情,

2023-08-14 13:34:06 129

原创 Linux上的五种IO模型

EAGAIN:没有事件到达,返回值为-1, errno为EAGAIN。👆:异步IO,内核帮助完成数据从内核空间拷贝到用户空间。

2023-08-13 11:13:29 101

原创 阻塞和非阻塞,同步和异步

具体数据读取还是通过应用程序自己完成的。只有使用了特殊API调用才是异步。同步:需要应用程序自己操作。epoll也是同步的。

2023-08-13 10:53:55 115

原创 UDP通信实验、广播与组播、本地套接字

服务器和客户端运行会产生两个伪文件,分别为《server.sock》《client.sock》,两个文件的大小为0。有关系和没有关系的进程之间都可以进行本地套接字通信。客户端需要加入多播组,才能接收到多播的数据。组播既可以用于局域网,也可以用于广域网。服务器:创建socket设置组播地址。通过本地套接字,实现缓冲区的连接。成功,返回成功发送的数据长度。成功,返回成功接收数据长度。本地client.sock。绑定本地IP和多播端口。服务器向组播地址发送。

2023-08-11 22:08:08 434

原创 半关闭、端口复用与IO多路复用

上面的代码的问题是,设置rdset后传入传出后被修改了,下次传入不是想要的了,可以定义一个传入传出的集合tmp,一个设置的集合rdset,每次需要select时将设置集合赋值给tmp,进行操作。fd_set:为1024bit的标志位寄存器,是一个传入传出参数,将需要检测的文件描述符位置1传入,内核负责判断需要检测的文件描述符是否有IO操作,若有标志位依然为1,若没有则标志位置0,检测完成传出。如果时间>0,阻塞对应的时间。设置完成进行select,有文件描述符发生变化会有返回值,否则阻塞。

2023-08-11 17:26:20 179

原创 TCP通信——多线程并发回环服务器

问题2:可以预设客户端信息数组,在主线程和子线程中使用指针变量控制客户端连接信息,通过指针控制方便,但客户端信息数组空间需要提前申请好,放在共享空间堆中。问题1:之前说C语言种结构体无法直接赋值,只能单个成员直接赋值,但经过C语言测试,可以直接赋值。

2023-08-10 14:30:36 464

原创 多进程并发服务器

问题4:接收数据中没有结束符’\0’,在`printf %s时,会导致数据错误(数据先长后短,打印的会包含上次数据),注意结束符的位置,strlen计算到结束符之前。可以设置客户端先发送,再读取,客户端发送后,数据经过服务器回传,客户端收到数据后,再进行下一次发送,若有一次数据丢失则无法进行数据发送,有一直阻塞在接收的风险。读取数据,该读取是阻塞的,所以一开始没有数据时是一直阻塞的,回环服务器接收到数据回传给客户端,这样客户端和服务器同时进行。信号,信号触发回调函数,进程子进程资源回收,父进程阻塞在。

2023-08-09 21:59:47 529

原创 TCP的四次挥手与TCP状态转换

三次握手由客户端主动发起,客户端请求连接的时候,服务器若不同意直接拒绝,若同意说明肯定也要请求和客户端建立连接,所以同意和请求连接一起传输,进行第二次握手,然后客户端同意服务器请求进行第三次握手。第一次挥手主动方发起,如客户端发起断开连接请求,服务器同意请求但还有数据发送的时候,可以继续发送,当服务器想断开连接的时候进行第三次挥手,发送断开连接请求,然后客户端应答。四次挥手是用于客户端和服务器断开连接的时候,可以由客户端或者服务器任一方主动发起断开请求。因TCP连接时候是双向的,所以断开的时候也是双向的。

2023-08-08 21:27:57 1006

原创 滑动窗口——缓冲区大小

mss:Maximum Segment Size(一条数据的最大的数据量)窗口理解为缓冲区的大小,滑动窗口的大小会随着发送数据和接收数据而变化。win:大小,告诉对方自己的缓冲区大小,当前缓冲区大小。通信双方都有发送缓冲区和接收缓冲区。

2023-08-08 20:12:50 101

原创 TCP三次握手

发生在客户端连接服务器的时候,当调用connect();时,底层会通过TCP协议进行三次握手。ack = m+1(仅仅在SYN = 1\FIN = 1 的时候)确保数据完整,并确保数据顺序。保证双方互相建立了连接。SYN、ACK:标志位。

2023-08-03 11:07:16 134

原创 Linux下TCP网络服务器与客户端通信程序入门

实现客户端连接服务器,通过终端窗口发送信息给服务器端,服务器接收到信息后对信息数据进行回传,客户端读取回传信息并返回。绑定本地IP地址并设置端口号。知道服务器的IP地址和端口号。服务器当前IP地址要知道。

2023-08-02 22:03:04 717

原创 ARP协议请求

目前只知道目标主机IP地址,想把数据发送过去,需要查询到目标主机的MAC地址,采用ARP协议。根据上图的源主机和目标主机请求报文和应答报文数据。通过 IP地址 查找 MAC地址。

2023-08-01 22:20:28 352

原创 生产者消费者模型——条件变量与信号量

使用时,会阻塞在这,并对互斥锁解锁,当拿到条件后,立即上锁并结束阻塞。用于阻塞线程,但不能保证共享资源的安全,要保证安全还得用互斥锁。条件变量不是锁,可以控制线程阻塞与否,可以配合锁使用。就会唤醒等待,使其停止阻塞。生产者、消费者用线程。

2023-07-31 19:54:41 148

原创 线程同步问题——锁

锁:互斥锁与读写锁

2023-07-31 14:54:06 173

原创 线程属性——线程分离应用

键查询和属性相关的函数。

2023-07-30 19:01:57 125

原创 线程操作——创、取、终、分、连

=注意:==设置分离后,再对相同的子线程进行join连接会出错。main.c:(.text+0x65):对‘pthread_create’未定义的引用。main函数执行的线程叫主线程(main线程),其余创建出来的叫子线程。粗略的理解为从用户区到内核区的切换,这个位置称为取消点。:线程取消后不会自动释放资源,需要进行连接终止线程(系统调用到取消点时才会终止取消的线程(可以用。),若线程已调用线程分离,则无需连接终止线程。线程是第三方的库,编译的时候需要指定库名称。回收子线程资源,解决僵尸线程问题。

2023-07-30 17:28:44 129

原创 线程初见——对速度的追求

同一个程序的所有线程共享一份全局内存区域特例:只包含一个线程的进程查看线程号:和进程类似,完成并发任务的执行会将栈空间和text段划分多个线程使用,其余共享。

2023-07-29 21:24:05 264

原创 守护进程——后台服务进程

echo $$:可以查看当前进程的进程号。

2023-07-29 17:43:29 528

原创 共享内存

共享内存维护了一个结构体struct shmid_ds,这个结构体中有一个成员 shm_nattach,记录了关联进程的个数。因为shmctl标记删除共享内存,不是直接删除,而是当共享内存关联的进程数为0的时候才真正被删除。如果一个进程和共享内存之间取消关联,那么这个进程就无法继续操作这个共享内存了,也不能重新关联。键key为0:表示共享内存被标记删除。被标记删除的共享内存没有进程关联的时候才会进行删除。当共享内存key为0的时候,表示共享内存被标记删除了。创建共享内存的进程被销毁后对共享内存没有影响。

2023-07-29 14:19:55 134

原创 信号的学习笔记二

假如能够捕捉这两个信号,捕捉之后不进行任何操作,不忽略,然后进程会一直运行,无法停止,所以需要他们不能被捕捉,不能被忽略。在执行回调函数时,是阻塞函数,不会被再一次的信号打断,而是在回调函数执行完成之后才进行新信号的捕捉。存在问题:多个子进程同时结束的问题,由于无排列队列,同时只能处理1个。未决信号不支持排队,仅能存一个信号,多余信号直接忽略掉。没有就是不阻塞,添加信号到信号集中,通过判断就是阻塞。创建清空后——判断信号为——不阻塞。删除信号后——判断信号为——不阻塞。添加信号后——判断信号为——阻塞。

2023-07-29 12:31:24 343

原创 信号——进程间最古老的通信方式之一

it_interval:定时器执行周期(定时结束到下一次定时开始)it_value:定时时间。该函数为非阻塞函数。

2023-07-26 16:56:15 83

原创 内存映射学习笔记

mmap。

2023-07-25 17:25:11 189

原创 Linux多进程应用——聊天功能实现

有A、B两个聊天进程,在每个进程中分别创建子进程,使其读写分开。采用多进程+有名管道实现。父进程:负责发送信息。子进程:负责接收信息。

2023-07-24 10:46:59 250

原创 有名管道(FIFO)的学习笔记

命令,函数,设置错误号;

2023-07-23 22:03:04 271

原创 进程间的通信之管道(匿名管道)

在使用fork创建进程后,文件描述符被复制,有两个相同的文件描述符同时指向管道。匿名管道只能用于具有关系的进程之间的通信(父子,兄弟,孙子进程)。若没有写端,则写时进程收到SIGPIPE信号,进程异常终止。当管道满了,若存在读端,则写时进入阻塞等待有空间再写;使用读函数读取的时候管道没有资源会进入阻塞态。当管道中没有数据,如果有写端,则阻塞等待数据;当管道中有数据,读取时返回实际读取的字节数。当管道没有满时,写时返回实际写入的字节数。非阻塞输入时,阻塞状态的情况会返回-1.如果没有写端,则返回0。

2023-07-23 17:32:45 146

原创 进程控制学习笔记

每出现孤儿进程,内核就会把其父进程设置为init(pid 为 1),而init进程就会循环的wait()它的已经退出的子进程。父进程调用wait()函数时,该父进程会被挂起(阻塞),直到它的一个子进程退出或者收到一个不能被忽略的信号时。子进程的退出需要父进程对其资源的释放,子进程只能对用户区的数据进行释放,无法完成对内核区的释放。当有子进程退出,会返回子进程的进程号,如果所有子进程都已经结束,没有子进程了,就会立即返回-1。需要父进程去释放回收子进程资源,无法使用kill -9杀死僵尸进程。

2023-07-22 22:16:43 123

原创 exec函数族

优点:不用输入可执行文件的路径,可以自动在PATH环境变量中查找;环境变量中没有的也是不能直接使用。👆:前六个函数为C库函数,后面一个是系统函数,C库函数里面封装了这个系统函数。返回值:只有错误时有返回值,返回-1,并修改errno值;第一个参数一般写执行程序的名字。参数最后以NULL结尾。

2023-07-22 19:46:08 47

原创 进程的创建

8.1版本的GDB对于多进程调试有些问题,可以使用7.11版本进行多进程的调试(挂起某个进程,只运行调试的进程)fork后父子进程共享文件,相同的文件文件描述符指向相同的文件表,引用计数增加,共享文件偏移指针。资源的复制是在需要写入时候才会进行,在此之前,只有以只读方式共享。可以通过他们的区别来判断当前是子进程还是父进程。这是一种推迟甚至是避免拷贝数据的技术。

2023-07-22 17:35:29 42

原创 进程概述一

文章目录程序和进程程序和进程

2023-07-21 09:56:58 30

原创 文件IO学习笔记二

文件IO学习笔记

2023-07-20 21:50:21 70

QT使用pen描点画图,源文件与头文件

里面包含部分资料,不是工程,分文件

2024-01-03

番茄钟QT源代码,完整工程

25分钟-5分钟一个番茄钟一个循环, 计时结束,弹窗提示。 使用测试,可直接下载打包文件,免安装直接使用,先测试结果,想学习再下载该源代码。 下载链接:https://download.csdn.net/download/qq_30255657/88636135

2023-12-16

番茄钟电脑软件(免安装)

25分钟—工作时间 5分钟—休息时间 循环一次,记录一次,最多循环记录99次番茄钟 番茄钟电脑软件, 打开直接使用,无需安装 QT编写的软件, win10环境下测试过。

2023-12-16

QT开发日志记录软件 Windows下 最新版

QT开发日志记录软件 Windows下 最新版

2023-10-23

网页控制esp8266gpio固件资料

资料包含: 1. 烧录工具 2. 固件文件 可以控制一个引脚的高低电平变化 控制:GPIO12 开:低电平0 关:高电平3.3

2023-08-27

webserver高并发web服务器源代码+注释

服务器源代码+详细注释 可实现10000客户端高并发访问 还包含webbench服务器压力测试工具 代码使用VScode和C++开发

2023-08-24

牛客大学之进程状态转换

进程学习资料 进程的状态以及各状态之间的转换

2023-07-22

牛客大学进程概述.pptx

进程学习

2023-07-21

免费驱动精灵万能网卡版

驱动精灵万能网卡版 也可以官网下载

2023-06-03

陶瓷剪切三轴加速度传感器

•微型立方体,质量轻 • 数量: 3个5-40螺孔,安装方便 • M4.5和¼-28,4针接头可选 • 气密,钛结构 • 基座应变灵敏度低 • 电压输出 • 陶瓷剪切传感元件 • TEDS配件 • IP68(最大10bar)防水选项可用 具体型号见说明书,最大量程+-2000g

2023-02-26

山东普通高校名单(本科、专科、高职)

本科70所,其中公办45所、民办21所 高职专科81所,其中公办66所,民办15所 想入职高校的可以参考该名单查找学校。

2023-02-08

日志管理系统 增加修改功能

日志管理系统 2022-08-22 增加修改功能 2023-10-23 增加一键插入时间功能

2022-08-22

BMI指数计算器 根据身高体重计算BMI指数的QT软件

BMI指数计算器 输入身高体重计算BMI指数,根据中国人体质判断健康状况!

2022-08-21

日志记录管理系统,可以做日志,可以记笔记,QT源代码

项目介绍:https://blog.csdn.net/qq_30255657/article/details/125723091?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125723091%22%2C%22source%22%3A%22qq_30255657%22%7D&ctrtid=P86fg 1.日志搜索: 直接在左下方输入文件名称即可完成搜索。 2.日志阅读: 界面右上方可以选择阅读模式,自主确定是否进行阅读。 3.新建日志文件: 直接点击右下角’笔‘按钮,自动跳转编辑界面,输入内容即可,自动识别有无内容,退出即可保存。 4.删除已有文件: 首先选中要删除的文件,然后点击删除, 比对弹出文件名称,确认后删除即可。 5.修改文件名称: 双击文件名,在弹出的对话框中修改即可。

2022-07-11

日志记录管理系统 软件下载 适用于Windows

初次使用直接修改密码,设置一个新密码就行 具有以下功能: 1.日志搜索: 直接在左下方输入文件名称即可完成搜索。 2.日志阅读: 界面右上方可以选择阅读模式,自主确定是否进行阅读。 3.新建日志文件: 直接点击右下角’笔‘按钮,自动跳转编辑界面,输入内容即可,自动识别有无内容,退出即可保存。 4.删除已有文件: 首先选中要删除的文件,然后点击删除, 比对弹出文件名称,确认后删除即可。 5.修改文件名称: 双击文件名,在弹出的对话框中修改即可。 详细介绍:https://blog.csdn.net/qq_30255657/article/details/125723091?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125723091%22%2C%22source%22%3A%22qq_30255657%22%7D&ctrtid=Gfy4b

2022-07-11

QT自制秒表 可打点计数 可获取当前电脑时间

QT自制秒表 可打点计数 可获取当前电脑时间 具有功能: 1. 开始 2. 停止 3. 打点 4. 重置 5. 显示电脑当前日期与时间

2022-06-27

TCPserver TCP服务器 网络调试助手

TCPserver TCP服务器 网络调试助手

2022-06-17

QT自制TCP客户端,有注释,便于学习

QT自制TCP客户端,有注释,便于学习

2022-06-12

QT自制串口助手,有注释,方便学习

QT自制串口助手,有注释,方便学习

2022-06-12

指端脉搏检测仪设计说明书-智能仪器课程设计

设计报告,world文档

2021-01-01

指端脉搏检测仪-智能仪器课程设计

详细目录可以查看博文介绍

2021-01-01

Proteus仿真实验之 51单片机温度测量实验

Proteus仿真实验之 51单片机温度测量实验

2021-01-01

Proteus仿真实验之 51单片机数模(D/A)转换实验

Proteus仿真实验之 51单片机数模(D/A)转换实验

2021-01-01

Proteus仿真实验之 51单片机模数(A/D)转换

Proteus仿真实验之 51单片机模数(A/D)转换

2021-01-01

Windows(64位)下的汇编调试工具包

学习汇编之后,想调试练习的,可以在Windows系统下使用该工具包进行调试运行 适用于8086汇编指令调试

2021-01-01

高精度AD采集卡资料

高精度AD采集卡详细资料,原理图,PCB都有,有f103的程序源码

2018-10-29

空空如也

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

TA关注的人

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