自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单片机外设汇总

注意:一般的windows开发工具,全局区存放全局变量和静态变量以及常量(字符串常量和const修饰的全局变量)。但是,在嵌入式系统中,将常量存放在Flash中具有节省RAM和减少拷贝操作的优势,而在一些桌面应用程序或计算机系统中,常量可能会直接存放在内存的全局区中以便于访问和修改。注意:如果两个DMA通道的优先级在软件层都是“高”,那就比较硬件阶段。如果同为DMA1的通道,且两个通道的软件层PL都是“高”,那就谁的通道号小,谁的优先级高。事实上当你使用M->M时,上述的通道都可以。

2023-12-15 18:12:14 595

原创 修饰构造函数的explicit与修饰析构函数的virtual

例如作为其他类的透明包装器的类。首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).上面也已经说过了, explicit关键字只对有一个参数的类构造函数有效, 如果类构造函数参数大于或等于两个时, 是不会产生隐式转换的, 所以explicit关键字也就无效了。多态的定义:一种接口有多种形态,所以重载也是一种多态哦!

2023-11-29 23:34:45 171

原创 学习关于视频传输的知识点

当需要传输视频内容时,视频的码率决定了传输过程中所需的网络带宽。通常情况下,较高的码率会提供更好的画质,但也会增加文件大小和传输带宽要求,而较低的码率则会在画质上做出一定的牺牲,但会减小文件大小和传输带宽压力。需要注意的是,码率仅仅是视频编码过程中的一个参数,实际的压缩质量还受到其他因素的影响,比如分辨率、帧率、压缩算法等。如果 m_frame 中存储了一张 YUV420P 格式的图片,那么 m_frame->data 和 m_frame->linesize 分别是指向存储图像数据和每行字节数的指针数组。

2023-11-27 14:29:42 168

原创 I2C知识点

这就是I2C协议,没啥好说的,仔细看上图就可以了。但是,此时有一个大问题,主机读数据从哪里读,主机写数据往哪里写(SCL总线是如何控制SDA数据以正常的频率发出,例如此时发送的是高电平,但是采集时有可能处于高低电平转化的状态。规定:SCL为高并且SDA由高到底时,此为I2C协议的开头;同理,I2C的帧结束也有相应的SCL和SDA的输出。解释:如果从机接地,SDA总线就会被拉低为低电平;总线的状态:低电平、高电平、高阻态(现象为好像断开了与总线的连接)从机如何控制SDA总线的高、低电平。

2023-10-08 14:27:15 76

原创 Ubentu下基于curb库函数实现访问HTTP服务器以及下载数据的客户端

完成以上步骤后,你就成功搭建了一个简单的服务器,并能够通过通过客户端程序连接到服务器并下载文件内容。确保客户端程序中的URL与服务器上的文件位置匹配。4. 准备下载文件:在服务器上创建一个文件,用于供客户端下载。可以使用以下命令创建并编辑文件:在打开的编辑器中,输入你想要在文件中包含的内容,然后保存并关闭文件。1.创建并配置服务器:完成服务器的设置和连接后,在终端或SSH会话中使用管理员权限登录到服务器。6. 验证文件下载:在Web浏览器中尝试以服务器的公共IP地址或域名访问文件。

2023-08-17 19:34:51 95

原创 Linux中Makefile

-fPIC` 表示生成位置独立的代码(Position Independent Code),这在生成动态链接库时非常有用,因为它使得代码可以在内存中的任何位置加载,而不依赖于特定的内存地址。所以,这行代码的目的是将 `-Os` 和 `-fPIC` 这两个编译选项添加到 `BLD_CFLAGS` 中,以便在构建过程中使用这些选项。总而言之,斜杠结尾的路径表示目录,不结尾的路径表示文件,而对于绝大多数Linux系统来说,斜杠的存在与否在路径的使用上没有重大影响。会判断给定的文件路径是否是一个目录。

2023-07-31 22:24:13 193

原创 物联网中MQTT协议

下表中第三列:C表示客户端、S表示服务器。

2023-07-31 21:09:16 47

原创 Opencv(四)

卷积核可以用于检测图像中的边缘,以及这些边缘的方向和强度。常见的卷积核包括Sobel和Prewitt等卷积核,它们对于在图像中找到边缘非常有用。卷积核还可以特征提取,例如,可以使用一组卷积核来提取图像中的轮廓、纹理、角点等特征。通过使用卷积核(如高斯核),可以降低图像中的噪声,模糊和平滑图像,使其更清晰。这对于某些图像处理任务,如边缘检测、纹理分析等是有益的。简而言之,图像卷积是一种强大的图像处理工具,可以用于各种图像处理任务,如模糊和平滑图像、边缘检测和特征提取等。

2023-06-24 14:12:02 41

原创 储存器种类与内存四区

电脑使用的DRAM(Dynamic Random Access Memory)和单片机使用的SRAM(Static Random Access Memory)是两种不同类型的随机存储器,它们在性质、价格、可靠性等方面都有一定的差异。DRAM和SRAM的最主要差别是每个存储单元的构造方式不同。DRAM需要定期进行“刷新”,来保持其中的数据。因为DRAM存储单元的结构设计比较简单,所以可以制造得比较小,从而实现高存储密度,而且成本也比较低,因此被广泛应用于计算机主存和显存等场合。

2023-06-17 21:36:16 162

转载 Linux系统时钟不对,如何处理------亲测有效

NTP synchronized 显示为yes就是说明同步了。命令 timedatectl。在命令界面输入以下命令。

2023-06-02 15:55:01 250 1

原创 linux中移植Qt后,调用摄像头使用类QCamer类还是使用Linux下的v4l2

在Linux中,一般可以使用Qt中的QCamer类或v4l2中的API来调用摄像头。具体选择哪一个工具可以根据实际需要来确定。如果你只需要基本的摄像头图像捕捉,简单地使用QCamer类并依赖Qt的其他部分可能会更加方便。QCamer类提供了许多易于使用的函数,可以轻松地创建和管理摄像头设备、设置捕捉参数、捕捉图像等等。另外,使用QCamer类还可以轻松地融入Qt的GUI应用程序中,增强用户界面的交互性。然而,如果你需要更多的控制和定制摄像头设备,那么使用v4l2库可能更好。

2023-05-30 22:13:00 1040

转载 Qt中自定义控件的封装

3、选择编译平台,因为从官网下载的QT Creator(Community)是使用MSVC2017编写的,为了使得编写后的自定义控件可以在QT Creator的设计器中使用,这里选择MSVC的编译平台(如果选择MinGW编译平台,自定义的控件在QT Creator的设计器中将无法显示出来,除非重新从官网下载QT Creator源码重新选择MinGW来编译。第六步:将dll文件放到如下目录下,这个目录是你安装QT的目录,根据自己机器的情况设置。第五步:去生成的Build文件中找生成的dll与lib。

2023-05-26 15:28:25 950 1

原创 比较规范的Qt Tcp客户端类

比较规范的Qt Tcp客户端类

2023-05-14 01:51:09 333

原创 new QPushbutten的入门介绍

这样,在整个类中都可以访问这个成员变量,而不仅仅限于构造函数内部。一般情况下,我们使用成员变量来保存动态创建的对象的地址,这样可以在类的其他函数中使用这个对象。,而这个指针只在构造函数中有效。如果需要在构造函数外部访问这个指针,必须将它保存为成员变量。则是将动态创建的QPushButton对象的地址保存在类的成员变量。可以在堆中动态创建一个QPushButton对象。会创建一个指向QPushButton类对象的指针。创建的对象地址,则可以在整个类中访问。创建的指针只在构造函数中有效,而使用。

2023-05-14 01:37:48 97

原创 关于typedef 与 函数指针的理解

解释说明:typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像使用int,char一样使用PTRFUN了。第二行的代码便使用这个新类型定义了变量pFun,此时就可以像使用形式1一样使用这个变量了。第一种:介绍大家比较熟悉的typedef-------》就是起别名。通过上面的例子,我们知道了函数指针的用法,而typedef可以让函数指针更直观方便。

2023-04-28 14:39:27 158

转载 Linux下vscode 如何实现分文件编写

第五步:编译工程ctrl + shift +B。第一步:在linux下先下载一个VScode。在终端输入output/main 运行程序。第三步:安装并启用后,使用方法如下。网上有许多的教程,这里不多做追叙。第二部:如图所示,需要下载这个插件。创建工程文件后目录结构如下。第四步:创建工程文件。

2023-04-07 18:27:11 335 1

原创 Xavier AGX 安装Qt

在顶部的菜单栏(鼠标移到左上角会自动出现)选择Tools->Options->Build & Run->Compilers ,然后点击Add并选择GCC,在compiler path一栏,输入gcc地址:/usr/bin/gcc。然后选择编译工具Kits的时候,需要选择新建的那个,比如上文提到的”JetsonTX2”。接下来,点击Kits选项卡,点击Add,新建一个名为”JetsonTX2”的编译工具(名字可以自己取),并参考下图作对应修改。回车,输入密码,回车,开始安装一些软件相关的文档和例子。

2023-04-01 15:12:15 374

原创 xavier agx can/canfd 发送接收测试(一)

xavier agx 像上图一样需要外接CAN收发器,同时xavier agx与usbcan(分析仪)都需要接120欧电阻(CAN总线的要求)第二步用命令行初始化CAN(FD)第一步:必须保证你的接线正确。第三步:CAN(FD)的收发。

2023-03-25 09:27:46 284

转载 Linux下如何在一个进程中使用多个定时器

原理利用select()方法的第5个参数,第一个参数设置为0,三个文件描述符集都设置为NULL,第5个参数为时间结构体,这种方法精度能够达到微妙级别,网上有很多基于select()的多线程定时器,说明select()稳定性还是非常好。问题描述:windows下的接口支持单进程中拥有多个定时器,而linux则只允许单进程拥有一个定时器,因此在linux下的单进程中要使用多个定时器,则需要自己维护管理。看APUE神书时候看到的,方法比较冷门,通过使用select(),来设置。

2023-03-23 13:56:38 1161 2

原创 Linux下设置socket()中网络层的read()和write()状态为阻塞或非阻塞态

阻塞模式:指的是当某个函数执行成功的条件当前不满足时,该函数会阻塞当前执行线程,程序执行流在超时时间到达或执行成功的条件满足后恢复继续执行。设置为非阻塞后,send会返回EAGAIN或者EWOULDBLOCK错误,此时可以调用select函数来监视何时可以发送数据。非阻塞模式:即使某个函数执行成功的条件不满足,该函数也不会阻塞当前执行线程,而是立即返回,继续执行程序流。Linux上的socket函数也可以在创建时将socket设置为非阻塞模式。二、如何将socket设置为非阻塞模式。socket函数定义。

2023-03-20 17:16:21 1887 1

原创 Linux中关于创建线程的理解

需要修改:g++ -o test main_project.cpp -lpthread。这个是编译时没有联立Linux的库函数-lpthread(小错误)4)arg参数表示线程运行函数的参数,如果没有参数则填NULL。2)attr参数用来设置线程属性,如果没有则填NULL。3)start_rtn参数表示线程运行函数的地址。1)tidp参数表示指向线程标识符的指针。如果g++编译时报错。

2023-03-20 16:48:49 55

转载 Linux中read()和wirte()函数的深度描述

以read为例,如果设备暂时没有数据可读就返回-1,同时置errno为EWOULDBLOCK(或者EAGAIN,这两个宏定义的值相同),表示本来应该阻塞在这里(would block,虚拟语气),事实上并没有阻塞而是直接返回错误,调用者应该试着再读一次(again)。,如果从终端输入的数据没有换行符,调用read读终端设备就会阻塞,如果网络上没有接收到数据包,调用read从网络读就会阻塞,至于会阻塞多长时间也是不确定的,如果一直没有数据到达就一直阻塞在那里。read函数从打开的设备或文件中读取数据。

2023-03-20 09:11:59 1532 1

转载 关于单片机串口的两种发送状态

关于单片机串口的两种发送状态

2023-03-03 16:48:12 386

原创 QT联立USBCAN_FD设备

QT联立USBCAN_FD设备

2023-02-23 21:23:14 498

原创 QT联立CANalyst II类型的CAN设备

QT联立CANalyst II

2022-12-16 11:24:56 587 2

转载 QT中connect()函数的第五个参数详解

QT中connect()函数的第五个参数详解

2022-11-16 20:50:25 735

原创 Vector 1610 CAN的二次开发

vector 1610 关于CAN的二次开发

2022-11-08 13:19:17 1658 1

原创 Linux下如何利用系统自带的客户端去测试自己写的服务器

第三步:在另一个终端窗口输入 命令nc+“127.0.0.1”+“服务端的端口号”第二步:在一个终端窗口启动自己的服务器。第一步:开启两个终端窗口。

2022-11-02 17:48:25 132

转载 QT修改releas发布的exe图标

QT

2022-10-29 17:58:55 157

转载 TCP通信防粘包处理

TCP防粘包

2022-10-28 23:41:15 337

转载 QT下TCP单发视频和同时发视频包和文本包的防粘包处理

QT中TCP通信防粘包处理

2022-10-28 23:29:03 464

原创 Linux下CAN报文收发,代码中捕捉信号signal最好用sigcation函数

【代码】Linux下CAN报文收发,代码中捕捉信号最好用sigcation函数。

2022-10-18 19:07:49 429

原创 Linux环境下利用C++联立sumo交通软件

目前各大网站都是利用python中sumo软件,该文档介绍C++联合仿真。

2022-10-17 21:20:03 722 2

原创 虚拟机下sudo apt-update报错

【代码】虚拟机下sudo apt-update报错。

2022-10-10 14:01:28 4859 11

原创 USBCANII如何测试自己的CAN盒是否有问题?

点击自发自收,正常回环说明电脑识别到了CAN盒,但是由于没有走通道,回环模式不能说明CAN盒的通道没有问题。此时CAN盒收发走的就是通道,如果测试成功,那就说明CAN盒没有问题。二、CAN盒自己的0通道发,1通道收。CAN盒的两个通道自相连。

2022-10-10 10:41:05 1379

空空如也

空空如也

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

TA关注的人

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