自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (6)
  • 收藏
  • 关注

原创 linux OpenCv环境搭建和Qt首次配合使用

opencvopencv安装和Qt首次配合使用opencv安装目前我所了解的opencv,它是第三方库,主要用于图像处理,例如人脸识别、物体跟踪等等…安装opencv之前先安装一些依赖工具包:但是发现有些是无法下载的,可能是我用了国内源的原因,还有一些工具包是之前装Qt时就下了的apt-get之前先update,以便获得推荐版本的包// 安装build-essential、cmake、git和pkg-configsudo apt-get install build-essential cm

2021-10-21 22:22:13 550

原创 sqlite3学习笔记

sqlite3简单了解sqlitesqlite常用的指令创建表向表插入数据删除表中的数据查询操作简单了解sqlitesqlite是开源的轻量级嵌入式关系型数据库,常用的关系型数据库系统,能实现数据存取、查询、更新sqlite优点:不占用太大的内存资源、可跨平台、同时也能支持大型数据库标准的sql语句sqlite安装及管理十分简便,敲sudo apt-get install sqlite3即可安装完成之后,输入sqlite终端会有反馈信息并且进入sqlite操作界面sqlite常用的指令

2021-10-20 21:48:23 180

原创 Qt信号和槽

信号和槽简单理解信号和槽信号和槽的使用滑块和选值框的使用(信号同步)简单理解信号和槽学linux进程时有了解到进程间通信,类比于此,信号和槽是对象之间进行通信,各种进程间通信有不同的方式和机制,同样信号和槽也有其语法要求语法规则:信号和槽的参数要一致槽函数可以带有缺省参数(默认参数)信号函数的参数个数可以多于槽函数,多余的参数被忽略信号和槽链接的应用:一个信号可以被连接到多个槽(一对多)多个信号也可以连接到同一个槽(多对一)两个信号可以直接连接(信号级联),例如是滑动条和选值框的信

2021-10-13 23:55:12 163

原创 linux Qt在窗口内设置控件

Qt窗口三种父窗口父窗口位置及大小设置在父窗口内包含标签和按钮在父窗口new出来的控件对象需要担心内存泄漏问题吗?三种父窗口QWidget:窗口QDialog:对话框QMainWindow:窗口三种窗口都可以当作父窗口,但是它们还是有一些小区别,体现在可以最小化,出现在屏幕的位置等#include <QApplication>#include <QWidget>#include <QDialog>#include <QMainWindow>

2021-10-13 19:31:38 312

原创 linux Qt界面显示乱码问题

Qt界面显示乱码问题vi编辑器转换编码格式调用Qt内部的编码转换函数vi编辑器转换编码格式windows编码格式:GBKLinux编码格式:UTF-8Qt应用程序编程接口及其内部实现:UTF-16在linux环境编写UTF-8格式的代码,运行应用程序时,Qt有自动转换其编码格式的功能,如果文件是来自windows或者网络等,文件格式不是UTF-8,运行Qt应用程序是,界面内容就很容易有乱码在vi编辑器的命令行模式下::set fileencoding可以看到文件编码格式,可以用 :set fil

2021-10-13 13:47:22 1229

原创 linux Qt第一个hello qt!

第一个Qt程序Qt常用的工具介绍编译Qt代码成可执行文件的流程编写Qt第一个hello qt!Qt常用的工具介绍assistant:Qt助手,相当于man手册qmake:Qt构造器,qmake -project用于生成.pro文件designer:Qt设计师,为界面拖拽组件、编辑参数uic:Qt转接器,将.xml格式的文件转成.h文件rcc:Qt资源编译器moc:Qt无对象编译器qtcreator:Qt创造器(可以鼠标操作)编译Qt代码成可执行文件的流程qmake -project生成

2021-10-13 01:20:53 140

原创 快速搭建linux环境ubuntu21.04

用了5-6个月的ubuntu18.04,昨天升级了win11,今天虚拟机就崩了,windows的虚拟化没问题、vmware的服务器却无法启动,尝试在网上找了很多资料,很多都试过,还是不行,还是重装比较省事,总体感觉这个新版本比之前的流畅很多ubuntu21.04下载链接https://ubuntu.com/download/desktop/thank-you?version=21.04&architecture=amd64VMware下载链接https://www.vmware.com/pr

2021-10-13 00:23:47 587

原创 ubuntu21.04 搭建Qt5.12.11环境

ubuntu搭建Qt环境Qt下载地址及安装配置环境变量--3种方式运行项目的几种报错安装了qtchooser可qmake还是找不到Qt下载地址及安装官网:https://download.qt.io/archive/qt/下载linux 64位版本、文件扩展名为 .run的,其实也可以在ubuntu通过apt-get install 下载,但是要找文件夹就很困难下载完之后,用共享文件夹或者FilleZilla传到ubuntu./qt… 运行它,赋予可执行权限:chmod +x然后会弹出界面、生成

2021-10-13 00:10:36 2614

原创 IIC通信基本概念

IICIIC总线线结构图IIC特点IIC总线线结构图假如设备的地址是0x1、0x2…IIC特点设备们都有可能作为主机和从机主机:发送方从机:接收方主机发送起始信号开始使用IIC总线,此时其他设备不能作为主机主机发送一个字节的数据来寻址和确认方向,最低位用来确认是发送还是接收(0是主机发送,从机接收,1则相反),后七位通过地址来找从机设备从机们都通过先判断主机发送的地址是否为自己的地址,如果是,再确认是作为接收端还是发送端,然后再发送一位应答,告诉主机,“我在”发送器不断发送数据,接收

2021-10-09 18:45:35 2650

原创 回顾基础知识--位运算

位运算位运算符与逻辑符位运算演练位运算符与逻辑符位运算符号主要功能按位与&清除位按位或l置位按位异或^相同的位取反(用的少)位取反~位取反(0变1,1变0)左移<<右边(最低位)开始补零右移>>为无符号变量时,左边开始补零位运算组合:&=、|=、>>=、<<=逻辑运算符号主要功能且&&判断多个条件是否同时成立或

2021-10-09 18:34:30 99

原创 ubuntu网络无法连接(桥接模式)

ubuntu桥接模式网络无法连接问题描述问题描述最近几天遇到了一个网络配置问题,因为之前的虚拟机崩了,我就跟换了ubuntu21.04版本,创建虚拟机的时候就选了桥接模式,虚拟网络编辑器默认也是桥接模式,然后在虚拟机设置的网络适配器也没漏选选项,在ubuntu桌面右上角的图标没出现,我打开系统设置的network也没有网络开关这个按钮,本来还想去修改一下配置文件,但是修改它应该是一般是设置静态地址,network网络开关选项都没有,应该是网络相关的进程结束了,要重新运行,然后就到网上找到了开启网络相关的

2021-10-09 12:00:48 1583 1

原创 linux 线程的调度

线程的优先级线程的优先级调度策略调度的相关API原型demo线程的优先级在系统中优先级分成:0-99普通线程:没有经过设置,正常地pthread_create(),pthread_join(),pthread_eixt(),普通线程的优先级别为0,如果几个线程都是普通线程,他们是公平竞争的静态优先级:一旦确定优先级别,就固定了,可取范围1-99,当静态优先级为0时,通过动态优先级加以区分动态优先级:它的级别可通过nice()来改变 The range of the nice value is

2021-09-25 16:43:51 669

原创 linux 线程属性设置分离

线程属性和分离ubuntu环境下安装查看线程库的手册线程的join和detach还有按属性分离的迥异线程属性之分离API原型ubuntu环境下安装查看线程库的手册sudo apt-get install manpages-posix-dev线程的join和detach还有按属性分离的迥异使用线程的默认情况下,一般是未分离(可接合),就会使用pthread_join(),它可以通过传递地址,这个地址在线程作用域中可被更改,进而用pthread_exit()“保存地址”,使用pthread_join

2021-09-25 12:16:34 274

原创 linux 守护进程

守护进程对守护进程的理解创建守护进程的框架/步骤demo对守护进程的理解守护进程别称有:精灵进程、后台进程在控制终端上./运行程序时可通过 &符号将其进程放到后台运行,但这只是表面行为(假像),一旦终端关闭,这个进程就会结束,而守护进程除了硬件被 ‘‘断电’’,正常情况下他会在SRAM的某个角落里成为了’‘隐士’’、默默耕耘,为使用者服务创建守护进程的框架/步骤一张图大致简述(忽略了很多细节):忽略信号创建子进程、父进程退出setpid()创建新的会话继续创建子进程,父进程退出

2021-09-24 23:13:12 88

原创 linux socket套接字io复用

io复用几种同时处理客户端的io请求的方式方式它们各自的一些缺点为什么要引入io复用?io复用的方式selectselect相关函数的原型select的原理select使用的框架/步骤demoepollepoll相关函数的原型epoll的原理epoll使用的框架/步骤demo几种同时处理客户端的io请求的方式方式阻塞 + 进程/线程非阻塞 + 忙轮询复用io信号、信号量处理异步io它们各自的一些缺点阻塞:虽然很少占用CPU资源,但是它不能很好地处理多个客户端同时发起io请求进程:虽

2021-09-24 13:17:51 253

原创 linux Makefile的使用

Makefile为什么引入Makefile?面对大型程序改动,不管文件有没有修改,gcc每次编译都要编译一次文件,效率低,而Makefile通过配置可以编译只改动的文件,就可以很好地解决这个问题。Makefile基本规则:目标文件:依赖文件% : 通配符$@:目标文件$^:所有依赖文件$<:一个依赖文件test: a.o b.o c.ogcc -o test $^%.o : %.cgcc -c -o $@ $<...

2021-09-17 22:25:13 127

原创 stm32 GPIO的使用

GPIO的使用系统架构一、时钟设置二、GPIO初始化三、设置输出高低电平示例代码系统架构一、时钟设置(1)时钟设置的文件:stm32f10x_rcc.h,函数在文件末尾(2)先确定外设所接的APB桥,GPIO的是APB2时钟设置的函数:void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph

2021-09-15 18:00:43 185

原创 C 循环队列(顺序式)

循环队列队列跟栈的区别循环队列要整明白的几个地方代码config.hqueue.cmainPro.c队列跟栈的区别不管是顺序栈还是链式栈,我们使用栈是只对顺序表的一端进行插入或删除元素,而队列是对顺序表的两端操作,一端进,另一端出循环队列要整明白的几个地方1、用结构体管理队列比较容易实现2、入队前判断队列是否为满3、队满时要特别注意,队列的空间是可以复用的,复用方法就是调整它的下标4、出队时要判断队列是否为空5、清空队列,可以用memset对数组初始化,同时也通过调整下标,让它回到初始状

2021-09-09 12:08:52 97

原创 C 链式栈

链式栈简单实现链式栈代码config.hlinkStack.cmainPro.c简单实现链式栈顺序栈是对顺序表的一端操作,那么链式栈则是对链表的一端操作要达到后进先出这个条件,用链表头插法,再用链表头删法比较容易实现,头插法进栈要考虑栈是否满了,头删法出栈要考虑栈是否为空代码config.h#ifndef _CONFIG_H#define _CONFIG_Htypedef int Data_t;struct Node{ Data_t data; struct Node *next

2021-09-08 21:24:39 86

原创 C 顺序栈

顺序栈顺序栈原理代码config.hstack.cmainPro.c顺序栈原理代码config.h#ifndef _CONFIG_H#define _CONFIG_Htypedef int Data_t;typedef struct{ Data_t *data; int maxLen; int top;}Stack;Stack *stack_init(int len);int stack_ifFul(Stack *s);int stack_push(Stack *s, Da

2021-09-08 12:56:37 62

原创 ubuntu 解决第三方库安装遇到的问题

linux环境解决外库安装问题linux安装外库,遇到问题我们应该这样做首先看说明书常见的安装或者配置有的可能要加权限才能编译有的可能要安装其他的基础库才能编译linux安装外库,遇到问题我们应该这样做首先看说明书先上图:一般外包,都有说明书(INSTALL、README.TXT),说明书也有可能在document(简称ducs)文件夹里里边含有教程,例如:常见的安装或者配置常见的安装或者配置有:./build 或者./make 或者 ./configure 等等,可以说是很多种,但是不

2021-09-06 22:23:41 209

原创 C 单向链表排序

链表排序链表排序的两种方式一、交换结点的数据域二、断开链表,重新形成方法示例链表排序的两种方式一、交换结点的数据域有很多种方法,比如冒泡排序,选择排序等其他排序方法struct Node *link_sort(struct Node *head){ int value; struct Node *p = head; struct Node *q = NULL; while(p) { q = p->next; while(q) { if(p->data &g

2021-09-06 17:01:32 2607 1

原创 C 三指针法单向链表反转(带头结点)

链表反转思路示例代码思路链表为空和只有一个头结点不用反转定义三个指针1、第一个指针指向头结点的下一个的下一个结点,并且断开下一个结点点的连接2、第二个指针指向第一个指针指向的下一个,用于遍历链表3、第三个指针用于循环体中,完成头插操作示例代码#include <stdio.h>#include <stdlib.h>#include <string.h>struct Node{ int data; struct Node *next;};

2021-09-04 16:53:10 171

原创 C 顺序表

顺序表简述(优缺点)操作的步骤示例代码listConfig.hlistFunc.cmainPro.c简述(优缺点)顺序表的优点:一般是通过结构体管理数组和数组的下标,可以随机访问数据,链表则需要遍历缺点:删除或插入元素时,数据成片移动,效率较低操作的步骤1、创建顺序表2、表的初始化3、插入新元素4、遍历展示(查询)5、删除新元素6、重置表7、其他操作后续更新采用分文件编程的方式实现对顺序表的操作,像简单工厂模式编程思想,作用文字概括是:1、使main函数整洁,可读性提升2、分模块

2021-09-03 23:36:41 80

原创 C 数据结构

数据结构学习经历思维导图学习经历迄今,我已经自学了两个星期了,从刚开始的无从下手,到逐渐有了一些启迪,回顾这段时间,我一开始是在B站搜视频来看,很多up主的视频讲的挺好的,至少我能听的明白,最关键的是边讲边手撕代码,虽然没有延申太多的概念,总的来说是注重操作,但最近一个星期,我同学跟我说:“啊,借本数据结构与算法分析的书给你,要不就去慕课找精品来看“,我信了,我看了两天的ppt,一上来就将讲算法和一大串的概念,我听的不明白,发现这样下去不太行,然后我就离开了,我是觉得,刚开始如果学习能力不是很强的话就去

2021-09-03 22:27:26 57

原创 C 双向循环链表(带头结点)

双向循环链表链表初始化头节点头插法插入新节点尾插法插入新节点指定数据域删除节点链表初始化头节点#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *prev; struct Node *next;}Link;Link *initLink(){ Link *head = (Link *)malloc(sizeof(Link)); if(head !=

2021-08-30 09:47:12 83

原创 C 单向循环链表(带头结点)

带头结点的单向循环链表链表的初始化头插法插入新节点形成链表尾插法插入新节点形成链表指定节点之前插入新节点指定节点之后插入新节点删除指定节点删除整条链表链表的初始化#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *next;}Link;Link *initLink(){ Link *head = (Link *)malloc(sizeof(Link)

2021-08-29 14:09:20 362

原创 C 单向链表实现贪吃蛇游戏

贪吃蛇小游戏实现步骤ncurses图形库下载示例代码实现步骤1、使用ncurses图形库的基础框架、测试键盘按键响应2、地图的规划,主要是确定链表的活动范围3、蛇身的初始化,确定蛇的开始位置4、蛇身的移动及地图刷新,链表的插入新节点、删除尾节点5、键盘控制蛇的走向,线程的使用6、游戏的规则制定,例如撞墙、咬到自己、不可以后退等7、食物的设置8、计时、得分等ncurses图形库下载在linux环境下安装:sudo apt-get install libncurses5-dev示例代码

2021-08-29 10:15:46 216

原创 linux环境下车牌识别验证

1、库下载https://github.com/curl/curl/releases/tag/curl-7_71_12、在ubuntu下解压tar xvf 包名3、进入解压后的文件,看README说明书、使用手册、文件./configure --help查看相关用法//第1步--prefix=$PWD:指定在当前目录下创建文件夹以至后续生成跨网络协议的相关文件 --host=arm...使用于交叉编译./configure --prefix=$PWD/_install --host=arm-li

2021-08-28 23:13:13 327

原创 C 实现双向链表(带头结点)

双向链表题目步骤移动节点代码示例题目用双向链表实现:将输入的数值按特定规则排序,格式为基数靠左且依次增大,偶数靠右且依次减少如:依次输入 1 2 3 4 5 6 输出 1 3 5 6 4 2步骤双向链表的使用步骤:1、初始化链表:创建头节点(判断申请空间是否成功,让它的前后指针指向空)2、创建新节点(判断申请空间是否成功,数据的赋值等等操作)3、尾插法插入新节点4、完成特定任务5、遍历链表,打印结果移动节点双向链表的节点移动,包含了断开节点和插入节点的操作断开节点之后如果不用了,

2021-08-28 23:11:01 276

原创 C 单向链表(带头结点)

带头结点的单向链表链表的头节点初始化头插法插入新节点形成链表尾插法插入新节点形成链表指定节点之前插入新节点指定节点之后插入新节点删除指定数据域的节点删除整条链表链表的头节点初始化#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *next;}Link;Link *initLink(){ Link *head = (Link *)malloc(size

2021-08-28 23:05:51 59

原创 C 单向链表(不带头结点)

单向链表不带头节点带头节点和不带头节点的小区别创建链表及头插法插入新节点创建链表及尾插法插入新节点在指定数据域前插入新节点在指定数据域后插入新节点指定数据域删除节点删除整条链表带头节点和不带头节点的小区别带头节点:链表的头节点不直接存储有效数据,而是在头节点的下一个才开始存储有效数据,为了方便管理,链表的头节点可以存储整条链表的节点的个数不带头节点:从链表的头节点直接开始存储有效数据无论带头节点和带不带头结点,链表头还是有的创建链表及头插法插入新节点#include <stdio.h&gt

2021-08-28 23:04:30 208

原创 UART通信基本概念

UART通信协议UART通信简述UART通信特点UART的通信过程UART通信简述英文名称:Universal Asynchronous Receiver Transmitter简称:UART 即通信异步接收器是一种串行、异步通信总线,有两条线传输数据,可以实现全双工的数据接收和发送,在嵌入式开发中常用于主机与外围设备之间的通信UART通信特点1、有线连接(RXD和TXD)2、全双工通信:可以接收端和发送端可以同时传输数据3、串行总线:主机发送端和外围设备接收端共用一根线4、异步通信:发送

2021-08-24 01:56:15 697

原创 Linux线程总结

Linux线程总结

2021-08-23 13:39:15 425

原创 Linux socket网络编程总结

Linux socket网络编程总结

2021-08-23 10:32:13 126

原创 Linux进程间通信总结

Linux初学进程总结

2021-08-22 21:50:40 306

原创 Linux进程总结

Linux进程间通信总结

2021-08-22 13:42:32 153

原创 Linux文件操作总结

Linux文件操作总结简述文件函数内核对文件的操作原理、管理机制是非常复杂繁多的,涉及到内核的访问机制,对于初学来说,应该是应用为王的。初学的时候可以避开这些原理,有了一定的基础之后时候再去深究。Unix、Linux系统调用的常用文件函数有:open、write、lseek、read、close等标准C库常用的函数有:fopen、fwrite、fseek、fread、fclose、fputc、feof、fgetc等二者区别主要体现在:1.适用范围、移植性、返回值open、write、lseek

2021-08-21 18:00:44 572

原创 Linux常用命令总结

Linux常用命令总结在终端在编辑文件在编辑模式在默认模式在终端指令功能鼠标单击选中复制点击鼠标滚轮粘贴Ctrl Shirt c复制Ctrl Shirt v粘贴Ctrl Alt t打开一个终端xrand -s调整终端分辨率Ctrl Shirt +放大终端Ctrl -缩小终端Ctrl c异常终止进程vi创建并且进入文件gcc编译运行touch创建一个或多个文件cat在终端展示文件内容

2021-08-21 17:21:39 55

原创 树莓linux动、静态函数库制作及使用

库的概念库是什么?库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容,库实际上就是一段编译好的二进制代码,供系统在链接时链接调用静态函数库与动态函数库的比较优点:静态库:程序运行、加载速度快动态库:内存节俭、发布、更新比静态库方便缺点:静态库:内存开销大、更新、部署、发布麻烦动态库:程序运行、加载速度慢以计算器为例子主函数部分calMain.c#include <stdio.

2021-08-21 15:40:22 113

Vissim交通仿真软件(2014年学生版).rar

课程资源

2021-09-16

stm32f10x系列固件库.zip

stm32f10x系列固件库

2021-09-15

ComAssistant.zip

串口调试助手

2021-09-07

NetAssist.zip

网络调试助手,tcp Server/Client,可用于测试网珞编程

2021-08-22

python基础.zip

88个小demo,从“人生苦短,我用python”到导入模块

2021-08-21

usb转串口驱动.rar

串口通信驱动程序

2021-08-19

空空如也

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

TA关注的人

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