自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DeepSeek部署的一些问题

大模型并不知道你的这些私有的知识,所以我需要通过RAG技术来让大模型学习新的知识。检索:当用户提出问题时,系统会从外部的知识库中检索出于用户输入相关的内容增强:系统将检索到的信息与用户的输入结合,扩展模型的上下文。这让生成模型可以利用外部知识,是生成的答案更准和丰富。生成:生成模型基于增强后的输入生成最终的回答,它结合用户输入和检索到的信息,生成符合逻辑、准确且可读的文本内容这里需要再引入一个“微调”这个概念和RAG技术进行对比。“微调”:在已有。

2025-02-09 22:21:37 297

原创 python:函数

一般情况下,在外层函数执行结束之后,局部变量会被回收,如果有内部函数仍然需要访问这些变量,Python解释器会保留这些变量的引用,直到内部函数不再需要它们为止。

2024-12-20 16:51:13 735

原创 c++:多态性

父类指针的操作空间,只有父类自己的空间,所以当父类的指针被释放时,只会调用父类的析构函数,不会释放掉子类的空间,所以要使用虚析构函数(在析构函数前面加上virtual)在上面2.2的例子中我们是在栈上申请的一个Son类型对象,那我们现在就在堆上申请一个Son对象,再用父类指针指向它。创建一个父类的指针指向子类的对象,该指针指向访问父类中继承的成员,不能访问子类自己拓展的成员。上面说了,创建一个指向子类成员的父类指针,此时该指针只能访问父类的成员,而不能访问子类的成员。想调用父类中的show函数可以这样写。

2024-12-09 16:31:51 790

原创 c++:类型转换+多维数组

value:在这其中做了两个过程,先把int a进行类型转换成double,再由一个临时变量来保存这个(double)a的值,再把这个中间变量引用给value,但这个临时变量在第二行操作完成之后就会被释放,那value就没有引用的对象了,就会报错。value1:将int a保存的地址转化成double*类型,改变了访问的地址空间,会访问到非法空间,所以取出来的值也是非法的。将value设置为常引用,通过const延长value的生命周期,此时中间变量的生命周期也会延长,等value被释放时一起被释放。

2024-12-08 17:43:30 368

原创 c++:timer

添加头文件。

2024-12-07 20:54:58 604

原创 c++:thread(线程)

虽然这样不会报错,但好像没什么意义,执行完线程的操作之后也得不到我想要的值a += 1;t.join();

2024-12-01 17:22:10 717

原创 c++:模版 template

std::array的大小在编译的时候就固定好了,一旦创建好了,就不能改变。

2024-12-01 17:14:43 994

原创 函数指针与指针函数

在内存中申请一片空间0x7ffd1b14c0bc,用来存储变量a,里面的值为10,再把地址地址给pa,并返回pa,但在该函数运行结束之后,会释放栈区内所有变量,当运行到fun2时,又会重新把0x7ffd1b14c0bc用来存储变量b,里面的值为20,这就是悬控指针,应当避免,要在堆区进行申请空间,malloc或new。悬空指针:当指针指向的对象被释放,但仍然指向已经被回收了的内存地址。悬空指针——在栈区申请空间,被释放。野指针:未初始化的指针。

2024-11-27 21:32:44 366

原创 Makefile与CMake回顾

目标:依赖(tab)命令1(tab)命令2(加入@之后就不会打印执行的语句,直接打印输出的值)父:子:3.3在makefile中加入头文件目录3.4存在多个相同目标时,以最后一个目标为准二、CMake1.产生过程项目代码--->CMakeLists.txt(脚本文件)--->cmake(执行命令)--->生成makefile--->make(执行命令)mkdir build在build 下敲cmake ..命令再执行make就会生成可执行文件app2

2024-11-13 21:14:22 420

原创 Python复习2

sorted(容器,[reverse=True]) reverse:反转。

2024-11-03 15:15:55 193

原创 Python复习1:

1.数字:int、float、bool2.字符串:string3.列表:list4.集合:set5.字典:dictionary。

2024-11-02 16:56:33 451 1

原创 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 443

原创 ARM day8

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

2024-05-23 20:45:29 392

原创 ARM day7

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

2024-05-22 21:12:38 345

原创 ARM day6

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

2024-05-21 19:58:08 255

原创 ARM day5

【代码】ARM day5。

2024-05-20 19:25:39 389

原创 IO多路复用回顾

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

2024-05-19 14:47:39 303

原创 ARM:day4

【代码】ARM:day4。

2024-05-17 20:07:10 155

原创 进程间的IPC通信机制

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

2024-05-13 18:37:22 647

原创 IO:线程的同步互斥

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

2024-05-12 15:50:56 421

原创 线程知识点

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

2024-05-11 21:02:51 458

原创 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 267

原创 FreeRTOS:day4

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

2024-04-20 11:48:23 206

原创 FreeRTOS:day3

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

2024-04-18 19:18:27 338

原创 FreeRTOS:day2

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

2024-04-17 19:28:02 791

原创 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 284

原创 QT:QT实现TCP协议

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

2024-04-11 23:08:19 413

原创 QT:事件机制

【代码】QT:事件机制。

2024-04-10 20:51:00 347

原创 QT:信号与槽

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

2024-04-09 20:16:04 457

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

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

2024-04-08 20:10:29 368

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

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

2024-04-07 21:03:05 442

原创 c++作业

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

2024-04-06 21:21:25 377

原创 C++:多态、模板

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

2024-04-02 20:16:39 656

原创 C++:类

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

2024-04-01 23:10:03 98

原创 C++:继承

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

2024-04-01 23:05:56 304

原创 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 418

原创 c++:引用

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

2024-03-26 21:51:54 1116

原创 c++初步

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

2024-03-25 23:25:23 470

原创 网络聊天室

【代码】网络聊天室。

2024-03-24 19:20:19 122

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

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

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

数据结构 计算结构体大小

数据结构 计算结构体大小

2024-02-21

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

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

2024-01-26

day3 c语言基础的重点笔记

day3 c语言基础的重点笔记

2024-01-16

空空如也

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

TA关注的人

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