自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++:回顾(一)

class A{A(int a){//有参构造class Stuprivate:int age;A a;public:// 初始化列表// 初始化列表的调用时机:在构造函数调用之前// 如果要全部使用初始化列表来完成对类中属性的初始化,需按照顺序cout << "Stu的有参构造" << endl;cout<<"学号:"<<this->id<<"姓名:"<<this->name<<"年龄:"<<this->age<<endl;

2024-06-09 20:28:18 365

原创 ARM day8

使用IIC读取温度、湿度、光照,并且当温度大于25°时,led1闪烁;当光照低于3时,led2闪烁。光照、温度、湿度传感器。

2024-05-23 20:45:29 309

原创 ARM day7

按键1中断控制LED1。按键2中断控制LED2。按键3中断控制LED3。实现三个按键中断代码。

2024-05-22 21:12:38 257

原创 ARM day6

作业:.c语言实现三盏灯的控制。

2024-05-21 19:58:08 179

原创 ARM day5

【代码】ARM day5。

2024-05-20 19:25:39 309

原创 IO多路复用回顾

1.进程中如果同时需要处理多路输入输出流,且在使用单进程单线程的情况下,就可以使用IO多路复用2.由于不需要创建新的进程和线程,减少系统的资源开销,减少上下文切换的次数。

2024-05-19 14:47:39 276

原创 ARM:day4

【代码】ARM:day4。

2024-05-17 20:07:10 110

原创 进程间的IPC通信机制

进程与进程间的用户空间相互独立,内核空间共享。1.传统的进程间通信机制a.无名管道 pipeb.有名管道 fifoc.信号 signal2.system V中的IPC对象a.消息队列 message queueb.共享内存 shared memoryc.信号灯集 semaphoare3.可用于跨主机传输的通信机制a.套接字 socket。

2024-05-13 18:37:22 612

原创 IO:线程的同步互斥

将不访问共享资源的线程直接休眠,并设置一个唤醒条件,当线程需要访问的时候,其他线程通过制定的条件变量唤醒该线程。线程之间如果要进行通信,需要引入同步互斥机制,避免产生竞态,保证在同一时刻,只有一个线程在处理临界资源。当信号量的值=0时,申请失败,该申请操作会阻塞,线程休眠,等待信号量>0。3.如果申请上锁失败,说明互斥锁被别的线程占用,该线程进入休眠,等待互斥锁解开。2.互斥锁又被称之为二值信号量,只允许一个线程进入临界区,即信号量的初始值为1。2.申请上锁,进入临界区访问临界资源,退出临界区,解开锁。

2024-05-12 15:50:56 375

原创 线程知识点

线程:是一个进程并发执行多种任务的机制。串行:多个任务有序执行,一个任务执行完毕后,再去执行下一个任务并发:多个任务在单个CPU上运行,同一个时间片上只能运行一个任务,cpu不停在各个任务上切换并行:多任务在多个cpu上运行,同一个时间片上可以执行多个任务其中上下文:运行一个进程所需要的所有资源上下文切换:切换进程时,cpu访问的资源需要替换原先的资源,进程的上下文切换是个耗时操作,所以引入线程。因为线程属于同一进程下,共享其附属进程的所有资源。

2024-05-11 21:02:51 433

原创 c语言关键字

1.char:字符型变量,大小为1字节2.short:短整型,大小为2字节3.int:整形,大小为4字节4.long:长整型,大小为8字节5.float:单浮点型,大小为4字节6.double:双浮点型,大小为8字节7.unsigned:无符号类型,在定义char、short、int、long数据时可以用unsigned修饰。8.void:空类型关键字,函数无返回值或无参数。

2024-05-10 20:16:33 171

原创 FreeRTOS:day4

信号量:分别为二进制信号量和计数型信号量。互斥量:用于保护共享资源。缺点:FreeRTOS互斥量中没有实现谁上锁就由谁解锁。递归锁:在递归锁中哪个任务上锁就必须由哪个任务解锁。递归锁可以用于解决死锁问题。递归锁可以多次获取。事件组:事件组是一种同步机制,用于任务之间的通信和同步。它允许任务等待多个事件的状态,并且可以在任何事件设置唤醒等待任务。任务通知:无须创建,直接可以使用,通过任务控制块(TCB)来实现。

2024-04-20 11:48:23 153

原创 FreeRTOS:day3

任务的创建方式分为动态创建(xTaskCreate)和静态创建(xTaskCreateStatic)。区别:1.动态创建不需要自己提供栈,只需要制定栈的大小即可,静态创建任务需要自己提供栈的大小以及栈的空间(数组)。2.动态创建任务适用于随时需要创建任务和随时需要删除任务的场景,静态创建任务适用于任务数量确定的场景。3.动态创建任务需要消耗的资源会比较多,因为实在程序运行的时候创建,静态创建任务消耗的资源会比较少,因为它已经提前创建好了。4.动态创建任务会更加灵活。

2024-04-18 19:18:27 271

原创 FreeRTOS:day2

DMA是提供在外设和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速的移动,节省了CPU的资源,用来做其他操作。DMA+空闲中断用来接收长度不确定的数据空闲中断:在发送一串字符串时,两个字符之间的间隔非常短,所以在两个字符之间不叫空闲,当总线上在一个字节的时间内没有再接收到数据时,就会启动空闲中断。当发送完一次数据后,过一个发送字节的时间内没有收到数据,启动空闲中断,处理接收到的一包数据。DMA接收函数UART_HandleTypeDef *huart:接收串口。

2024-04-17 19:28:02 696

原创 FreeRTOS:day1

在使用Keil uVision5下载和编译代码时,注意工程设置、正确导入源代码、配置依赖项、检查编译器设置、确认调试配置、连接目标设备、下载代码前检查设备状态、及时解决错误。2.总结STM32Cubemx的使用方法和需要注意的事项。1.总结keil5下载代码和编译代码需要注意的事项。5.配置输入/输出模式、上下拉等;1.选择正确的MCU系列和型号;2.配置引脚、时钟和外设;6.生成代码并导入IDE;7.生成代码并导入IDE。1.选择对应MCU型号;3.选择需要配置的引脚;3.生成初始化代码;

2024-04-16 17:25:25 236

原创 QT:QT实现TCP协议

widget.hmain.cppwidget.cpp2.客户端widget.hmain.cppwidget.cpp

2024-04-11 23:08:19 357

原创 QT:事件机制

【代码】QT:事件机制。

2024-04-10 20:51:00 321

原创 QT:信号与槽

如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能。完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。

2024-04-09 20:16:04 435

原创 QT:QMainWindow、ui界面、资源文件的添加、信号和槽

delete ui;qDebug()<<"登录成功";else{qDebug()<<"登录失败";

2024-04-08 20:10:29 340

原创 Qt:窗口、按钮类、行编辑器、标签类

【代码】Qt:窗口、按钮类、行编辑器、标签类。

2024-04-07 21:03:05 425

原创 c++作业

2.写一个程序,程序包含两个类,类中实现一个成员函数,MyGetChar(),类A中每调用一次,按顺序得到一个数字字符,比如第一次调用得到'℃',第二次得到1',以此类推,类B没调用一次得到一个小写字母字符,比如第一次调用得到'a',第二次得到′b,以此类推,程序通过交替调用类A和类 B的函数,实现运行结果输出一串字符串“Oa1b2c3d4e5f6g7h8i9j0k112m3n4o5p6q7r8s9tuvwxyz”1.实现一个类,类中实现一个set 函数,设置一个成员a的值。

2024-04-06 21:21:25 353

原创 C++:多态、模板

相同的代码、实现不同的功能。

2024-04-02 20:16:39 548

原创 C++:类

算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载。

2024-04-01 23:10:03 82

原创 C++:继承

写出下列类的,构造函数(有参、无参),析构函数,拷贝构造函数和拷贝赋值函数。对菱形继承给出的代码中每一个类,写一个有参构造函数。

2024-04-01 23:05:56 291

原创 bit位清零、置1

单bit操作例如:0XFF bit5 清零先将1左移5位,即1<<5, 0000 0001 -> 0010 0000再将0010 0000取反 得 1101 1111最后将1111 1111 & 1101 1111,得1101 1111。

2024-03-30 14:43:43 283

原创 c++:引用

数据类型 &引用名 = 目标;引用必须初始化取变量的内存地址按位与&&逻辑与&表示定义引用如何区分何时是定义引用何时是取地址?如果&前面有数据类型,说明是定义引用如果&前面没有数据类型,说明是取变量地址。

2024-03-26 21:51:54 1011

原创 c++初步

c++中将字符串封装乘string类,后续可以用string定义字符串变量。如果导入了命名空间中和全局变量冲突的标识符时,后续访问该标识符会报错。访问全局变量: ::标识符名;(全局变量,默认在程序的匿名空间中)=,==,>,>=····运算符直接判断字符串间的关系。cout控制格式输出,只能输出十六进制、八进制和十进制。访问命名空间中的标识符: 命名空间名::标识符名。命名空间只能定义全局处/其他命名空间中。s1.empty:对字符串判空。s1.clear:清空字符串。

2024-03-25 23:25:23 453

原创 网络聊天室

【代码】网络聊天室。

2024-03-24 19:20:19 104

原创 网络编程:IO多路复用

1.在有操作系统时,想让多任务并发执行,可以使用多进程或多线程完成多任务并发执行2.在没有操作系统的情况下,就不能使用多进程或多线程了,但是还仍然要让多任务并发执行,此时我们引入了IO多路复用技术3.原理:将多个阻塞任务的文件描述符,统一放到一个检测容器中,然后用一个阻塞函数进行管理,如果检测容器中有一个或多个文件描述符对应的事件发生,就会解除阻塞,进而去执行相应的函数。

2024-03-24 12:55:06 207 1

原创 模拟面试题

子进程退出,父进程不退出,且父进程不回收子进程的资源。此时子进程会变成僵尸进程。僵尸进程本身就死掉的进程,无法再被kill僵尸进程是有危害的:占用进程号,占用进程调度块,占用cpu资源等等,,,,,僵尸进程必须回收!!!退出僵尸进程的父进程,僵尸进程的资源将由内核自动回收。wait/waitpid函数回收:阻塞形式会导致父进程无法正常执行自己的任务,非阻塞形式可能会收不到僵尸进程。将wait/waitpid函数结合信号的方式回收:当子进程退出后,发送一个信号给父进程,通知父进程收尸。

2024-03-21 22:04:27 812

原创 网络编程:学生管理系统

1.添加学生信息2.删除学生信息3.修改学生信息4.查找学生信息。

2024-03-21 19:34:43 163

原创 网络编程:数据库

1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。2> 添加三条工人信息(可以完整信息,也可以非完整信息)3> 修改某一个工人的薪资(确定的一个)4> 展示出工资在1000到2000之间的所有工人信息5> 删除掉指定姓名工人的信息6> 工厂倒闭,删除整个工人信息库2.insert into work values(1,"小明",6,1000);insert into work values(2,"小红",7,2000);

2024-03-20 19:32:33 1079 1

原创 网络编程:包头分析

0X0003 接收发往本机的MAC所有类型:ip,arp,rarp数据帧,接收从本机发出去的数据帧, 混杂模式打开的情况下,会接收到非发往本地的MAC数据帧。Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。DF:Don't Fragment,“不分片”位,如果将这一比特置1 ,IP层将不对数据报进行分片,即为最后一片。MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。ACK:应答包,用于应答非应答包。

2024-03-20 16:36:54 764

原创 模拟面试

三次握手1.客户端像向服务器端发送连接请求2.服务器应答连接请求3.客户端与服务器简历连接四次挥手:客户端或服务器端发起断开请求,这里假设客户端发送断开请求1.客户端向服务器发送断开请求2.服务器应答断开请求3.服务器请求关闭连接4.客户端发送确认应答。

2024-03-19 19:48:54 1024

原创 网络编程:多点通信+域套接字

getsockopt和setsockopt功能:获取或设置套接字相关层中某个属性的值参数1:要设置或者获取的套接字文件描述符参数2:要操作的层SOL_SOCKET:表示应用层IPPROTO_TCP:表示传输层的tcpIPPROTO_UDP:表示传输层的udpIPPROTO_IP:表示网络层参数3:某层中要操作的属性参数4:要给套接字属性设置的值,大部分是整型,设置该属性用1,禁用该属于用0参数5:参数4的大小返回值:成功返回0,失败返回-1并置位错误码。

2024-03-18 23:37:06 813

原创 网络编程面试题

1.为了区分同一主机上的多个进程,使用端口号来进行处理2.端口号是以一个2字节的无符号整数,取值范围[0,65535]3.端口号分类:指定端口号:常用的为TCP 21:FTP文件传输服务TCP 110:POP3邮局协议版本TCP 80:HTTP超文本传输协议UDP 53:DNS域名解析服务UDP 69:TFTP文件传输服务用户可用端口号:1024-49151临时端口号(自动分配端口号):49152-65535。

2024-03-15 20:49:26 1007

原创 TCP机械臂控制

0xff 0x02 x y 0xff 0xff:起始结束协议,固定的;0x02:控制机械手臂协议,固定的;x:指定要操作的机械臂 0x00 红色摆臂 0x01 蓝色摆臂 y:指定角度。通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂。查看Windows的IP:按住Windows+r 按键,输入cmd , 输入ipconfig。1)基于TCP服务器的机械臂,端口号是8888, ip是Windows的ip;注意:关闭计算机的杀毒软件,电脑管家,防火墙。

2024-03-15 19:59:46 374

原创 TCP并发模型

对于之前的TCP服务器而言,一个服务器只能处理一个客户端你的操作,效率低,当客户端推出后,服务器也就结束了。为了实现一个服务器可以应对多个客户端,我们先引入循环模型。

2024-03-15 19:57:39 274

原创 网络编程:TCP和UDP

1.网络通信通过套接字进行数据传输2.socket是一个函数,为通信创建一个端点,并返回该端点的文件描述符3.套接字本身是一个文件描述符,对应的是一个特殊的文件,该文件描述符维护了两个缓冲区,分别是发送缓冲区和接收缓冲区4.套接字可以实现全双工的通信功能:创建用于通信的一个端点,并返回对应的文件描述符,文件描述符按最小未使用原则分配 参数1:规定通信域AF_UNIX, AF_LOCAL 同一主机之间多进程通信 具体内容可查看 man 7 unix。

2024-03-14 20:56:32 731

原创 网络编程:网络编程基础

TCP/IP协议已分成了两个不同的协议:用来检测网络传输中差错的传输控制协议TCP专门负责对不同网络进行2互联的互联网协议IP。

2024-03-13 21:13:10 1142

数据结构 计算结构体大小

数据结构 计算结构体大小

2024-02-21

c高级 day1 好好好好好好好好好好好

c高级 day1 好好好好好好好好好好好

2024-01-26

day3 c语言基础的重点笔记

day3 c语言基础的重点笔记

2024-01-16

空空如也

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

TA关注的人

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