自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT窗口自适应

【代码】QT窗口自适应。

2024-03-23 20:26:02 124

原创 C++练习

用 C++ 写一个四则运算。

2024-01-17 19:48:42 366

原创 C++知识补充(一)

内联函数(Inline Function)是 C++ 中一种特殊的函数,其定义直接在每个调用点展开,这意味着编译器会尝试将函数调用替换为函数本身的代码,这样可以减少函数调用的开销,尤其是在小型函数中。Lambda表达式最简单的案例是在需要一个小型函数或临时函数时直接便用它,以下是一个非常简单的例子,其中使用Lambda 表达式来定义一个加法操作,并立即使用它来计算两个数的和。Lambda 表达式是 C++11引入的一种匿名函数的方式,它允许你在需要函数的地方内联地定义函数,而无需单独命名函数。

2024-01-15 20:57:53 898

原创 C++基础

/ 使用方法// 在main.cpp中首先包含定义cirde 命名空间的头文件。然后可以使用cir::前缀来访问命名空间中的函数和常量,通过使用自定义命名空间可以有效的组织代码减少不同库之间的名称冲突。int main()// 使用两种表达方式 printf("length:%lf,area:%lf\n",cir::getLengthOfCircle(myRadius),cir::getAreaOfCircle(myRadius));return 0;

2024-01-13 15:22:09 850

原创 QT快捷键

QT快捷键功能快捷键撤销CTRL+Z重做CTRL+Y复制CTRL+C粘贴CTRL+V复制行向下CTRL+ALT+DOWN复制行向上CTRL+ALT+UP运行CTRL+R返回编辑模式ESCAPE切换当前文件CTRL+TAB切换声明和定义F2切换头文件和源文件F4开始调试F5停止调试SHIFT+F5构建当前项目CTRL+B构建所有项目CTRL+SHIFT+B新建文件或项目

2024-01-12 19:54:58 367

原创 Python基础知识(一)

变量名尽可能有实际意义,表征数据的某种类型下划线(推荐:变量和函数名)变量名由多个单词组成:用_连接多个单词驼峰体(推荐:类名)变量名由多个单词组成:单词首字母大写尽量避免用中文和拼音做变量名特殊的变量:常量(不变的量,如Π,e)变量名所有字母均为大写。

2023-08-07 18:08:14 158

原创 链表反转操作

【代码】链表反转操作。

2023-03-19 16:30:44 76

原创 vscode解决乱码

在“c”后添加 chcp 65001 && ,保存。找到 Code Runner 插件。找到以下部分,并将代码粘贴到此。

2023-03-19 16:28:13 133

原创 SD卡快速扩容

设备树莓派:3BSD卡容量:8g

2023-02-18 12:37:43 739

原创 图的基本概念

一个图G它可以由顶点集(图G中顶点的有限非空集)V和边集(图G中顶点之间的关系集合)E所组成。图中顶点个数也可以称为图的阶;任何一条边的两头必须连接某一个顶点。图不可以是空,即顶点集V一定是非空集,但边集E可以是空集。简单图在这个图里不存在重复的边,并且也不存在顶点到自身的边。...

2022-07-27 16:48:39 2565

原创 树的性质

树的性质

2022-07-17 12:06:10 151

原创 树的定义和基本术语

从一个被称为根节点的结点出发,然后依次长出各个分支,每一个分支上又可以连接一个新的结点,分支可以称为边;图中橙色节点一次还有下一级的分支,像这种结点可以称为分支节点;绿色的结点由于下面没有其他分支,可以将其称为叶子节点。...

2022-07-17 11:52:46 217

原创 串的部分基本操作代码实现

串的部分基本操作

2022-07-16 20:59:32 404

原创 队列的相关知识

数据结构三要素:逻辑结构,数据的运算,存储结构(物理结构)存储的结构不同,运算的实现方式不同。队列相当于一种操作受限的线性表,只能从队头删除元素,队尾插入元素。队列的特点:先进先出(First In First Out,FIFO);可以类比为排队打饭队列的顺序实现(可以用静态数组来存储队列中的数据元素)如果下面是队头,上边是队尾,可以规定让队头指针指向队头元素,队尾指针指向队尾元素的后一个位置,也就是下一次要出入数据元素的位置;如上图,front = 0,rear = 5。刚开始时,可以将队尾指针和队

2022-07-09 23:09:45 361

原创 栈的相关知识

定义:只允许在一端插入和删除的线性表;遵循后进先出的原则(Last In First Out, LIFO)。可以类比为制作烤串和吃烤串。顺序栈:采用顺序存储的栈;利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针指向当前栈顶元素的位置。栈顶指针:S.top ,初始值设置为 S.top = -1;栈顶元素:S.data[S.top]栈空条件:S.top == -1;栈满条件:S.top == MaxSize-1;栈长:S.top+1进栈:栈不满时,栈顶指针先加1,再送值到栈顶元素。

2022-07-09 22:46:02 451

原创 树莓派3B安装docker

参考地址:https://shumeipai.nxez.com/2019/05/20/how-to-install-docker-on-your-raspberry-pi.html树莓派3B安装Docker如果之前安装过,需要先移除sudo apt-get remove docker docker-engine docker.iosudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl gnu

2022-02-25 16:04:55 1131

原创 段错误产生原因

文章摘录自公众号:编程那些年段错误产生原因(Segmentation fault (core dumped))访问不存在的内存地址ptr没有申请空间就直接拷贝数据:#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, char *argv[]){ char *ptr = NULL; //This is the wrong implementati

2022-02-25 11:48:36 305

原创 IO操控代码

IO操控代码// 芯片手册GPFSEL0 GPIO Function Select 0 // 功能选择 输入/输出(GPIO Function Select Registers)32位 14-12 001 = GPIO Pin4 is an output 17-15 FSEL5 FSEL5 - Function Select 5GPSET1 GPIO pin Output Set 1 // 输出10 = No effect1 = Set GPIO pin nGPCLR0

2022-02-23 21:30:14 151

原创 基于框架编写驱动代码

基于框架编写驱动代码 // pinDrive.c#include <linux/fs.h> // file_operations声明#include <linux/module.h> // module_init module_exit声明#include <linux/init.h> // __init __exit 宏定义声明#include <linux/device.h> // class devise声明#in

2022-02-23 16:58:05 141

转载 http协议和https协议

http协议http 协议是建立在 TCP/IP协议上应用层协议,默认端口为 80,8080http 协议请求http 协议的报文传输的是 ASCII 码,在 TCP/IP 协议上主要分为:请求行,请求头,请求体。请求行(get请求,post请求)在第一行中包含请求方式,url,http协议getposturl 的可见性可见不可见数据传输通过拼接 url 进行传递参数通过 body 体传输参数缓存性可以缓存不可缓存请求页面后退时的反应不产生影

2022-02-22 17:43:07 290

原创 关于网络的基本概念

关于网络的基本概念OSI模型(Open System Interconnection model)是一个国际标准化组织提出的概念模型,试图供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。socket,tcp,http三者之间区别和原理三次握手四次挥手套接字(socket)概念套接字是通信的基石,是支持 TCP/IP 协议的网络通信的基本操作单元。是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:

2022-02-22 12:24:44 1610

原创 libcurl库

libcurl库libcurl 是一个跨平台网络协议库,http,https,telnet,ftp等协议都支持;而且支持HTTPS证书授权,HTTP POST,HTTP PUT,FTP上传,HTTP基本表单上传,代理,cookies和用户认证。关于使用curl_global_init() // 初始化 libcurlcurl_easy_init() // 得到 easy interface 型指针curl_easy_setopt() // 设置传输选项,根据此选项实现回调函数以完成用户特

2022-02-20 22:22:56 1100

原创 树莓派配置CSI摄像头

树莓派配置CSI摄像头sudo apt-get install subversion // Subversion是一个自由开源的版本控制系统sudo apt-get install libjpeg8-dev // JPEG支持库sudo apt-get install imagemagicksudo apt-get install libv4l-dev // 4l是小写"L"sudo apt-get install cmake // 下载编译工具完成以上操作后然后在安装 git(进行以下操作

2022-02-20 12:41:16 742

原创 语音模块接树莓派要注意的问题

语音模块接树莓派要注意的问题修改cd /boot/sudo vi cmdline.txt将下面红色部分删除,可能 serial0 这个不相同也可以直接在 SD 卡的根目录下找到 cmdline.txt 直接修改.接线注意电源和地线都要接到树莓派...

2022-02-17 19:40:04 206

原创 设计模式之工厂模式

设计模式设计模式是软件开发人员在软件开发过程中面临的一般开发问题的解决方案。设计模式通常描述了一组相互紧密作用的类和对象;设计模式有23种;使代码更容易被他人理解,保证代码可靠性,程序的重要性。是通过代码设计经验总结而成,稳定性,拓展性更强。工厂模式工厂模式(Factory Pattern)是最常用的设计模式之一;这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式;在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。结构体的新玩法// 一

2022-02-11 21:47:04 418

原创 关于文件系统的简单了解

文件系统文件系统在常规认知中是根目录,然而文件系统是操作系统用于明确存储设备组织文件的方法(该方法就是文件管理系统,简称文件系统)。文件系统的种类:FAT,VFAT,NTFS,EXT1/2/3/4,HFS等树莓派查看文件系统的命令:df -Tvfat:boot(bootloader,kernel)ext4:根目录tmpfs:内存文件系统分取的概念windows:比较随意(面向普通用户PC),目录即分区C盘(装系统的位置)也可以在 C 盘存放文件D盘(用户随意发挥)Linux:按照功能

2022-02-09 11:48:02 829

原创 树莓派等芯片带操作系统的启动过程及Linux源码的配置

树莓派等芯片带操作系统的启动过程关于嵌入式产品包括:树莓派,mini2440,mini6410,nanopi,海思,RK等等。关于BootLoader:让CPU和内存,FLASH,串口,IIC,IIS,数据段,驱动等设备打交道(汇编和C结合)引导Linux内核启动(纯C)树莓派Linux源码目录树分析大约有1.3w个C文件,几千万行代码,Linux是开源免费的,由Linux开源社区工作者共同维护;而且是多架构多平台代码,可执行度很高;由于支持多平台,多架构,所以在编译之前要配置,配置成适合

2022-02-08 21:35:05 879

原创 关于交叉编译

交叉编译What???交叉编译指的就是在一个平台上生成另一个平台上可执行的代码。比如说在 Keil 上编写的 C51 代码,然后编译成可执行代码,xx.hex 文件,接着将该文件下载到 C51 上运行,并不是直接在 windows 上运行。还有在 ubuntu 上编写树莓派的代码,然后编译成可执行代码,xx.out 这个文件是在树莓派上运行,并不是在 ubuntu linux 上运行。这里所说的编译是在一个平台上生成我们的芯片可执行的代码,当然我们的不同芯片,编译所需软件可能也会不同。比如 C51

2022-02-07 13:03:50 807

原创 树莓派外设开发

树莓派外设开发wiringPi (特定平台,特定功能接口)库API(常用)wiringPi 是树莓派IO控制库,有很多接口:GPIO控制,中断,多线程等。使用 wiringPi 时,需要先初始化树莓派,而且要包含头文件 #include <wiringPi.h>以下为两个常用的函数,返回 -1 表示初始化失败int wiringPiSetup(void) // 当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi引脚编号表,引脚编号为0-16;需要 root 权限i

2022-01-28 11:59:18 343

原创 Linux库概念

Linux库概念分文件编程的好处分模块的编程思想;功能责任划分;方便调试;主程序简洁关于库的简单解释静态函数库:程序执行前(编译)就加入到目标程序中优点:运行快;发布程序时无需提供静态库,移植方便缺点:大;更新,部署,发布比较麻烦动态函数库:程序执行时动态(临时)由目标程序去调用优点:小,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可共用,节省内存;程序升级简单。缺点:运行慢(相对静态库);发布程序需要提供依赖的动态库关于库的制作静态库静态库的制作(格式:eg

2022-01-24 15:39:01 799

原创 树莓派基础配置

树莓派基础配置树莓派登录HDMI视频线 连接到显示器串口默认情况,树莓派的串口和蓝牙连接(想办法断开蓝牙连接,把串口用来数据通信)修改系统配置,启用串口登录树莓派打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存dtoverlay=pi3-miniuart-bt //停止蓝牙,解除对串口的占用修改根目录的"cmdline.txt",将其内容替换为以下内容(注意备份原内容)dwc_otg.lpm_enable=0 console=tty1 conso

2022-01-19 22:38:59 3853

原创 基于wemosD1开发板的小车养成(二)

串口控制小车前进后退#define Dong1 D6#define Dong2 D7#define Zhuan1 D4#define Zhuan2 D5void initL9110s(){ pinMode(Dong1, OUTPUT); pinMode(Dong2, OUTPUT); pinMode(Zhuan1, OUTPUT); pinMode(Zhuan2, OUTPUT);}void back(){ digitalWrite(Dong1, LOW); d

2022-01-12 20:37:08 179

原创 基于wemosD1开发板的小车养成(一)

WeMos D1介绍特性:基于ESP-8266EXArduino兼容,使用rduino IDE来编程11个 I/O 引脚1 个ADC 引脚(输入范围0-3.3V)板载5V 1A开关电源(高输入电压24V)工作中:和stm32模块开发类似,集成度高STM32方案也更经济便宜开发环境介绍Arduino开发环境,和keil对比优点:集成很多开发库如串口,网络,sg90等各种硬件开发接口,迅捷开发自带串口调试工具 ;缺点: 程序编译速度慢开发环境的配

2022-01-11 20:18:33 3567

原创 网络编程.

网络编程使用网络编程实现多机通讯TCP/UDP对比TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。TCP面向字节流,实际上是TCP把数据看成一串无结构的字节流;UDP是面向报文的,UDP没有阻塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)。每一条TCP连接只能是点到点

2021-11-14 11:17:26 1359

原创 初识线程.

典型的UNIX/Linux进程可以看成只有一个控制进程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事情,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间,内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。线程是操作系统能够进行运算调度的最小单位,是进程中的实际运作单位。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路

2021-11-08 16:07:22 639

原创 进程(三)

exec族函数为什么要用exec族函数,有什么用?一个进程希望复制自己,使父,子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当这种请求到达时,父进程调用fork,使子进程处理此请求。父进程则继续等待下一个服务请求到达。一个进程要执行一个不同的程序。这对shell是常见的情况。在这种情况下,子进程从fork返回立即调用exec。功能在调用进程内部执行一个可执行文件。可执行文件既可以是二进制文件,也可以是任何Linux可执行的脚本文件。函数原型#incl

2021-09-25 00:02:05 67

原创 进程(二)

进程(二)vfork函数也可以创建进程vfork与fork的区别:vfork直接使用父进程存储空间,不拷贝;vfork保证子进程先运行,当子进程调用exit退出后,父进程才执行。// fork#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid_t pid; pid = fork(); if(pid &

2021-09-19 22:23:14 80

原创 进程(一)

什么是程序,什么是进程,有什么区别?程序是静态的概念,gcc xxx.c -o pro;磁盘中生成pro文件,叫做程序。进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一次进程。如何查看系统中有哪些进程?使用ps指令查看,在实际工作中,配合grep来查找程序中是否存在某一个进程使用top指令查看,类似windows任务管理器什么是进程标识符?每个进程都有一个非负整数表示唯一的ID,叫做pid,类似身份证Pid = 0:称为交换进程(swapper) 作用:进程调度Pi

2021-09-13 14:40:26 99

转载 欠拟合与过拟合

一、过拟合问题1.1 问题定义过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。1.2 出现过拟合的原因训练集的数量级和模型的复杂度不匹配。训练集的数量级要小于模型的复杂度;训练集和测试集特征分布不一致;样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;权值学习迭代次数足够多

2021-05-02 09:12:47 224

原创 一些话

老天是公平的,现在给你多大的享受,将来就给你多大的难受。有可能会发生的事就一定会发生。当你到了某个年纪,还需要别人督促你的话,你大可放弃了。我不比你聪明,我有目标,我比你早,比你强。如果做一件事情不是高一个数量级的话实际上就很难比别人强了。做事要么早,要么狠。吃不了自律的苦,就要受平庸的罪。如果你真的愿意去努力,人生最差的结果,不过是大器晚成。没有问题意味着你没在生活,有了问题才有生活的机会。失败不可怕,失败也是一种学习。日落西山你不陪,东山再起你是谁?莫道君行早,更有早行人。..

2021-04-15 10:43:57 82

空空如也

空空如也

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

TA关注的人

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