- 博客(34)
- 收藏
- 关注
原创 Qt Creator配置openCV
由于opencv的库文件一般是dll动态链接库文件,可以被MSVC(Visual studio编译器)所编译引用,但QT一般采用的是MinGw编译器,所以要引用opencv的动态链接库需要通过。下列步骤可以成功在QT creator中配置opencv库文件(正常情况下是需要下载cmake对opencv文件进行编译转换,但下述网站中已经有各个版本的opencv的。的编译文件,省去自己下载cmake将opencv文件编译转换了。# Opencv库文件路径添加。
2023-06-19 12:02:58
1772
原创 Qt槽函数会被执行多次的问题原因及解决方法
因为初始化函数在在整个程序中只运行一次,所以这里面连接信号和槽,就能避免重复连接问题了。Qt::UniqueConnection的作用是:如果该信号以前没连接过,则连接它,返回true,如果以前连接过,则不再连接,返回false。例如 connect(ui.btn, &QAbstractButton::clicked, this, &QtWidgetsApplication2::btnClicked, Qt::UniqueConnection); QMetaObject::Connection conn
2023-06-06 15:54:05
1572
原创 QString的toLocal8bit和toLatin1
执行toLocal8Bit就相当于将unicode编码的qstring转为了本地编码格式,对于windows系统,本地编码格式为GBK,linux系统为UTF-8。到了Qt5中,就把setCodecForCStrings和setCodecForTr给去掉了,并将QString()的构造函数默认调用的是fromUTF8,且Qt Creator的文件编码格式默认为UTF-8。QString的toLocal8bit和toLatin1都可以将QString转化为QByteArray,但是两者的区别在于编码的不同。
2023-06-06 15:35:10
4188
转载 结构体在内存中的对齐规则
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一:#include <iostream> using namespace std; structX...
2021-09-14 18:00:54
1027
原创 局部变量和全局变量 、内存分布空间
第一部分问题局部变量(Local Variable):定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效。再调用就是出错。全局变量(Global Variable):定义:所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。#include<stdio.h>int main(){ int i=520; printf("before: i=%d\n",i); for(int i=0;i<10;i++){ .
2021-09-10 18:33:18
1218
原创 指针函数和函数指针
二维数组的数组名表示假设定义一个array[5][6] 的二维数组 则array表示为指向包含5个元素数组的指针*(array+1)表示:指向第二行首地址
2021-09-10 18:08:52
126
原创 数组和指针
一、概念数组:数组是用于储存多个相同类型数据的集合。 指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址二、赋值、存储方式、求sizeof、初始化等1.赋值同类型指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝2.存储方式数组:数组在内存中是连续存放的,开辟一块连续的内存空间。数组是根据数组的下进行访问的,多维数组在内存中是按照一维数组存储的,只是在逻辑上是多维的。数组的存储空间,不是在静态区就是在栈上。指针:指针很灵活,它可以指向任.
2021-09-07 14:13:13
307
原创 socket
1)、socketint socket(int family, int type, int protocol);socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发数据,如果socket()调用出错则返回-1。对于IPv4,family参数指定为AF_INET。对于TCP协议,type参数指定为SOCK_STREAM,表示面向流的传输协议。如果是UDP协议,则type参数指定SOCK_DGRA
2021-08-31 15:38:16
92
原创 wemose arduion 基础回顾
wemos 基础指令 (回顾)Serial.begin(9600) -----------------------------初始化串口位9600 wif模块初始化char *ssid="WDZ"; //wifi热点名称char *passwd="dz456987"; //wifi热点密码void initWifiSta(){ WiFi.mode(WIFI_STA); // 两种模式 AP路由器 和STA上网模式 WiFi.b...
2021-08-31 15:19:25
79
转载 深入浅出-网络七层模型
OSI 模型(Open System Interconnection model)是一个由国际标准化组织????提出的概念模型,试图????供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层,每层都可以????供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议。OSI 模型各层间关系和通讯时的数据流向如图所示:OSI 模型显然、如果一个东西想包罗万象、一般时不可能的;在实际的开发应用中一般时在此模型
2021-08-17 12:44:41
814
转载 Linux进阶之TCP三次握手四次挥手
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP6 表示层 例如XDR、ASN.1、SMB、AFP、NCP5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets4 传输层 例如TCP、UDP、R...
2021-08-17 12:41:32
282
转载 最全的socket,tcp,http三者之间的区别和原理
socket,tcp,http三者之间的区别和原理http、TCP/IP协议与socket之间的区别下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP6 表示层 例如XDR、ASN.1、SMB、AFP、NCP5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、Net...
2021-08-17 12:33:09
1086
原创 libcurl等第三方库的通用编译方法(访问百度主页)
Http协议之libcurl实现libcurl简介libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证安装libcurl库的步骤1.下载libcurl库安装包https://github.com/curl/curl/releases/ta
2021-08-14 10:52:37
187
原创 树莓派 USB摄像头 实现网络监控
安装MJPG-Streamer一.安装必要的库sudo apt-get updatesudo apt-get install subversionsudo apt-get install libjpeg8-devsudo apt-get install imagemagicksudo apt-get install libv4l-devsudo apt-get install cmakesudo apt-get install git二.git开源的project到本地,编译
2021-08-06 19:03:44
1942
原创 基于驱动框架编写代码与测试
1 驱动框架 pin4driver.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> //clas...
2021-08-02 18:15:31
119
原创 树莓派交叉编译
目录一、概念(交叉编译是什么,为什么要交叉编译)交叉编译(Cross_Compile) 编译 为什么要交叉编译? 宿主机(host)与目标机(target) 交叉编译需要用到什么工具?二、交叉编译工具链的安装 交叉编译工具下载 交叉编译工具安装三、交叉编译的使用 对比gcc与armgcc 如何把编译生成的可执行文件下载到开发板:四、带WiringPi库的交叉编译如何处理 ...
2021-07-29 13:20:56
319
原创 WringPi库串口通信
目录简述半双工与全双工串口通信注重什么WringPi串口API初次使用树莓派串口编程,需要配置。接线EG:树莓派向电脑串口每隔1s发送一个字符w(师承陈立臣)运行程序,打开PC串口调试助手语音识别功能(师承陈立臣)运行程序,语音模块讲话简述半双工与全双工全双工允许通信双方同时互传数据;半双工不可同时,一方发送时,另一方只能接收。串口通信属于全双工。串口通信注重什么数据格式数据位,停止位,奇偶校验位波特率波特率(Baud Rate) 单位 bps .
2021-07-28 20:38:38
627
原创 树莓派wiringPi库初始化
目录硬件初始化函数通用GPIO控制函数 树莓派控制继电器超声波测距查看引脚编号表格在使用wiringPi库时,你需要包含头文件 #include<wiringPi.h>。凡是写wiringPi的程序,都包含这个头文件。硬件初始化函数使用wiringPi时,你必须在执行任何操作前初始化树莓派,否则程序不能正常工作。可以调用下表函数之一进行初始化,它们都会返回一个int , 返回 -1 表示初始化失败。int wiringPiS...
2021-07-28 16:19:37
591
原创 Linux库之静态库和动态库
介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用。程序函数库可以使整个程序更加模块化,更容易重新编译,而且更方便升级。 程序函数库可分为3种类型:静态函数库(static libraries)、共享函数库(shared libraries)、动态加载函数库(dynamically loadedlibraries):1、静态函数库,是在程序执行前...
2021-07-28 14:44:01
305
原创 树莓派开发基础配置
目录1.树莓派刷机 2.树莓派登录 2.1HDMI视频线 连接到显示器 2.2 串口 2.3通过网络登录树莓派 2.4图形方式登录树莓派1.树莓派刷机 步骤:a.打开diskimager,插上读卡器 b.找到对应的Device(sd卡),并导入镜像 c.点击write,对其提示点yes,进行烧录,过程需...
2021-07-28 12:13:07
344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人