自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA基础Day 1面向对象

继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承 Object(这个类在 java.lang 包中,所以不需要 import)祖先类。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

2024-05-24 01:47:46 1103

原创 我的第一个JAVA程序IDEA版

然后在包文件夹下新建类。

2024-05-23 21:40:17 325

原创 C++命名空间概述

命名空间是一组相关标识符的逻辑容器,通过将标识符放入不同的命名空间中,可以确保即使不同开发者或不同库使用了相同的标识符,也不会在全局范围内产生混淆或冲突。

2024-04-12 11:15:48 626

原创 AutoDL算力云进行yolov5训练流程

第二步 切换目录到data 新建yaml文件 输入内容如下图类似 保证train和val即可。之后就可以立即创建了 ,我们的服务器就启动了,点击第一行JupyterLab。其中best.pt就是我们需要的 之后我们可以调用这个pt文件进行后续的操作。训练完成 找到runs文件夹 train文件夹 里面就有我们的训练结果,我们将yolov5 压缩成压缩包 可以拖到服务中去。yolov5的版本最好为7.0 其他的有点问题。将yolov5s.yaml的类别数改为自己的。导入我们的数据集datasets。

2024-03-25 03:57:35 1537

原创 PyQt5使用

再对应用户下找到designer.exe。这时候我们使用纯代码实现一个简单的界面。使用方法跟C++ qt一致 不过多介绍。都可以进行界面的显示。

2024-03-13 00:59:56 546

原创 vs+qt实现摄像头开启以及拍照功能

一个UI一个摄像头一个用来显示摄像头的一个list存储摄像头名称一个捕捉信息的一个用来存储名字的函数分别为 开启 拍照 保存 关闭Q_OBJECTpublic:~face();private://摄像头对象指针//摄像头的取景器//存储摄像机设备信息//记录摄像头内容//照片的名字直接ai哥解释在C++中,对于使用new关键字动态分配的对象,通常需要手动释放内存以避免内存泄漏。

2024-02-26 00:55:29 1363

原创 Qt地铁智慧换乘系统浅学(四 )实现添加线路,添加站点,添加边 并且存储到本地txt文件

需要注意的是,在初始化阶段infoaddline ,infoaddstation,infoaddedge也是要执行的,在。同样的 如果将这个信息存储到初始化里面,我们并不知道他所在的顺序,因为初始化文件里都是顺序存储,建边需要!于是我们新建一个txt文件 用来存储新添加的站点,并且添加之后维护到程序运行的存储结构中。我们在初始化完成之后 ,再额外初始化咱们添加的这些站点即可 ,将他们画在地图上。如果你将它存在初始化的txt文件中,类似以下的形式。我们输入站点的名称,站点所属线路,以及站点的经纬度。

2023-09-28 15:19:58 1039

原创 Qt地铁智慧换乘系统浅学( 三 )最少路径和最少换乘实现

在以上的基础上,对队列进行dist距离的排序,或者trans换乘次数的排序。大体意思是队列思想,每次入队相邻的节点,按照队列以此调用。这里如果想要实现最短路,最少换乘的话,需要用到优先队列。概念这里不过多介绍,很多文章介绍。这里我们实现了最短路径下最少换乘。每次去除最少的,也类似于贪心。

2023-09-24 22:08:08 1193 1

原创 Qt地铁智慧换乘系统浅学( 二 )将存储的站点线路信息绘制到graphicsView(图形视图部件)

我们再放大之后发现 我们画的线贯穿了站点圆,这是由于我们先画圆,然后再画线导致的,我们可以先画线 然后再画圆。这里定义了一个flag,用来判断两个站点之间是否已经画过了 另外段代码和上述的画站点所属一个函数。3 我们需要知道这两个站点所属的线路信息,是否存在所属多个线路。新建一个zoomIO h和cpp文件 用来存储放大缩小相关函数。1 每次画一条边,即两个相邻站点之间的边。放大缩小的公式我就当工具了,不去理解了。知道这些之后就可以遍历画边了!3 确定黑点的坐标 和 大小。2 我们需要两个边的坐标。

2023-09-22 21:32:01 1263

原创 Qt地铁智慧换乘系统浅学( 一 )存储站点,线路信息

/画图使用// 跑最短路// 站点所属线路总// 线路颜色统计站点信息 在经纬度网站统计如下。

2023-09-21 18:37:36 807 4

原创 STM32f103入门(12)USART串口信息发送+接收

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:TTL电平:+3.3V或+5V表示1,0V表示0RS232电平:-3-15V表示1,+3+15V表示0RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)串口参数波特率:串口通信的速率起始位:标志一个数据帧的开始,固定为低电平数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行校验位:用于数据验证,根据数据位计算得来。

2023-09-13 19:43:51 4730

原创 Qt5下遍历QList的方法

lines定义如下 QMap<QString,Line> lines;我们使用了friend class SyswaySystem 声明了友元类。但其实lines也是保护成员 隶属于 SyswaySystem 类。for循环这个遍历函数也属于SyswaySystem类。但是 我们看到我们调用了保护成员sta_list。这样 我们就可以访问Line的保护成员了。但是为什么能够调用Line的保护成员呢。我们可以看到在public中。

2023-09-08 20:57:11 1553

原创 STM32f103入门(11)DMA直接存储器读取

DMA(Direct Memory Access)直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)每个通道都支持软件触发和特定的硬件触发STM32F103C8T6 DMA资源:DMA1(7个通道)

2023-09-05 20:58:27 561

原创 STM32f103入门(10)ADC模数转换器

ADC简介ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~ 3.3V,转换结果范围:0~ 409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组两个转换单元模拟看门狗自动监测输入电压范围STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道。

2023-09-03 19:24:47 1422

原创 STM32f103入门(9)编码器接口测速

原理上也是PWM捕获输入 捕获两个输入。这样我们就得到了旋转编码器的速度/s。我们用中断处理读取CNT的值。PA6 PA7 上拉输入。

2023-09-03 14:26:23 391

原创 STM32f103入门(8)TIM输入捕获&输入捕获测频率&PWMI测占空比

因为在上升沿结束时 cnt 清零 所以过了半个周期到了下降沿 CCR2=CNT=总的1半。Fx=Fc/N Fc cnt的驱动时钟 这时候就可以得到频率 Fc=72M/PSC。这里用到了两个CCR2 CCR2用来记录高电平时候的cnt 正好为总数的占空比。第四步 配置输入捕获单元包括滤波器,极性,直连通道,交叉通道,分频器这些参数。CNT计数一个周期,转运到CCR1里面去,CNT=0。我们之前都是修改占空比,修改的是CCR,这里不同。然后到了上升沿CCR=CNT=总的。

2023-09-02 21:55:44 1701

原创 2023河南萌新联赛第(八)场 南阳理工学院F小前前

然后我们就可以根据第j位是否存在二进制数 来选择是否 sum+=pow(2,j)a[][] 第一层为第i个数 第二层为i层及之前所有数在二进制第j位的和。所以 L - R 的或值就是最大的子区间 然后再求与x的或值就ok了。我们不能每次循环都暴力跑一边 那肯定是不行的。另外需要注意的是 我用内置的pow 会错误。每次查询L - R的 最大连续子区间的或值。那么a[1][0]=0 a[1][1]=0。a[l] - a[r-1] 即可。就可以获得这个区间的二进制数。我们在求或值的时候 只需要。

2023-09-02 16:39:30 260

原创 STM32f103入门(7)pwm驱动led&驱动舵机&驱动直流电机

每个定时器有四个通道,每一个通道都有一个捕获比较寄存器,将寄存器值和计数器值比较,通过比较结果输出高低电平,实现PWM信号如图为向上计数:定时器重装载值为ARR,比较值CCRxt时刻对计数器值和比较值进行比较如果计数器值小于CCRx值,输出低电平如果计数器值大于CCRx值,输出高电平PWM的一个周期定时器从0开始向上计数当0-t1段,定时器计数器TIMx_CNT值小于CCRx值,输出低电平t1-t2段,定时器计数器TIMx_CNT值大于CCRx值,输出高电平。

2023-09-01 21:28:40 1895 1

原创 STM32f103入门(6)定时器外部中断

该函数用于配置外部时钟触发模式2,其中TIM2表示要配置的TIM模块,TIM_ExtTRGPSC_OFF表示外部触发时钟的预分频系数为1,TIM_ExtTRGPolarity_NonInverted表示外部触发信号的极性为非反转,0x0F表示外部触发信号的滤波器时钟分频系数。最后,使用NVIC_PriorityGroupConfig函数配置NVIC的中断优先级分组,这里设置为NVIC_PriorityGroup_2,表示使用2位抢占优先级和2位响应优先级。同时,在中断服务程序中还需要编写相应的处理逻辑。

2023-08-29 21:37:52 336

原创 STM32f103入门(5)定时器中断

中断与事件(Interrupts and Events):TIM模块支持多种中断和事件,如更新中断(计数器溢出时触发)、比较中断(计数器与比较值相等时触发)等。编写中断服务程序(ISR):在中断发生时,处理器会跳转到相应的中断服务程序。控制寄存器(Control Register):控制寄存器用于配置和控制TIM模块的工作方式,如使能或禁止计时器、选择计时器的工作模式、使能或禁止中断等。配置TIM寄存器:首先,通过配置TIM相关的寄存器来设置计时器的基本参数,例如预分频系数、计数模式、计数器周期等。

2023-08-29 20:42:44 931

原创 STM32f103入门(4)对射式红外传感器计次(外部中断)

运行顺序 GPIO -> AFIO ->EXTI ->NVIC -> CPU。第四步,配置EXTI,选择触发方式,比如下降沿,上升沿或者双边沿。第二步,配置GPIO,选择我们的端口为输入模式。第五步,配置NVIC,给中断选择合适的优先级。第三步,配置AFIO,选择我们用的GPIO。第一步,配置RCC 将涉及到的时钟打开。NVIC 中断排队工具。AFIO配置相关函数。EXTI配置相关函数。NVIC配置相关函数。

2023-08-29 18:25:40 1235 1

原创 STM32f103入门(3)OLED屏幕显示&keil调试

需要注意的一点 在初始化的时候屏幕引脚需要设置为推免输出。采用的4引脚的i2c协议的屏幕 支持3.3 - 5v。

2023-08-29 10:41:19 492

原创 STM32f103入门(3)按键控制LED灯以及光敏传感器控制LED

按键控制 技术点。

2023-08-28 20:04:53 1000

原创 STM32f103入门(2)流水灯&&蜂鸣器

【代码】STM32f103入门(2)流水灯&&蜂鸣器。

2023-08-26 22:33:13 300

原创 STM32f103入门(1) 配置&&点亮Led灯

1 安装keil5 MDK。2安装stm32芯片。

2023-08-26 21:44:37 947

原创 设备树的相关概念

文件夹中包含系统所需的驱动程序,包括设备驱动、文件系统驱动、网络驱动、输入输出驱动等。文件夹中还可以包含应用程序,这些应用程序通常是用户需要运行在嵌入式系统上的软件应用,比如图形界面应用程序、网络服务器应用程序、数据处理应用程序等。文件夹的作用是为嵌入式系统提供必要的文件和资源,在启动代码、驱动程序和应用程序等方面提供支持,为嵌入式系统的开发、调试和部署提供基础。4 其他文件和目录:SOC 文件夹还可能包含其他文件和子目录,例如系统配置文件、库文件、编译器工具链、文档资料等。在linux内核文件夹中。

2023-05-11 18:16:09 499

原创 MX6U心跳灯关闭(干扰正常电灯驱动)

这是系统中的所有设备按照其功能分类放置的目录结构,同样该目录下的文件也是链接到了/sys/devices 目录。按照设备的功能划分组织在/sys/class 目录下,譬如/sys/class/leds目录中存放了所有的 LED 设备,/sys/class/input 目录中存放了所有的输入类设备。找啊找 找啊找 最后在左神的网盘资料中 听到了 如果出现心跳灯 需要进行设置一下 即下面所出现的代码。在进行./ledApp /dev/led 1 即点亮的过程中 出现 突然点亮 然后又恢复了心跳灯。

2023-05-10 16:51:30 140

原创 U-boot 的使用

使用 USB 线将 USB_TTL 和电脑连接,也就是将开发板的串口 1 连接到电脑上。打开串口工具软件,设置好串口参数并打开,最后复位开发板。A. 将开发板的 Linux 镜像和设备树复制到 Ubuntu 主机中的 tftpboot 文件夹下。成以后将 SD 卡插到 I.MX6U-ALPHA 开发板上,BOOT 设置从 SD 卡启动,通过tftp 将 ubuntu中的 tftpboot文件夹中的文件下载过去。C. 下载设备树 imx6ull-qst-emmc.dtb。D .shell 脚本编译。

2023-05-05 21:09:16 499

原创 MX6U根文件系统配置

配置好 busybox 以后就可以编译了,我们可以指定编译结果的存放目录,我们肯定要将编。这个错误就是busybox 没有 配置好 可能是 你的交叉编译信息有误 或者其他。解决办法就是编辑主机上的nfs-kernel-server文件,命令如下。删除掉这个ld-linux-armhf.so.3。修改完之后仍然出来了一个像bug的东西。编译 BusyBox 构建根文件系统。下面 的一些修改不过介绍 看官方介绍。依照自己的交叉编译 不然会出错。然后对服务进行重启,命令如下。我的目录是这个 有区别。

2023-05-05 20:56:23 497

原创 Qt 学生信息数据库管理

我们采用了样式表 通过添加Qt resources文件 添加前缀 添加文件,将我们的图标进行添加。并设置方式为OnManualSubmit 表示手动提交 ,与之对应的是 修改即提交。Trimmed 作用 -- > 去掉空格 否则不严谨 空格存在也不算空。撤销所有未提交的更改。连接数据库跟访问数据库用到的头文件 仅main文件。(1)声明 在h文件中声明用到的函数 和变量。这里我在main文件中 进行了表的初始化。采用的是 学号 和 姓名 都可以查询。(6)撤销未提交的修改 和 显示全表。

2023-04-18 14:45:34 644

原创 Qt网络编程 (udp广播和接收例)

使用两个项目1 sender 用来广播"hello world";2 receiver 用来接收广播信息。

2023-04-17 15:36:24 2466

原创 QT sql查询模型,视图显示

SQL 查询模型(QSqlQueryModel)是 Qt 提供的一种数据模型,用于执行 SQL 查询并返回结果集。它继承自QSqlTableModel 类,可以使用 QSqlQuery 对象执行任意的 SQL语句,并将查询结果封装成一个二维表格形式的数据模型,方便在 Qt 应用程序中进行展示和操作。QSqlQueryModel 可以通过 setQuery() 函数设置要执行的 SQL 语句,并通过 setHeaderData()函数设置表头信息。

2023-04-13 14:55:32 1191

原创 Qt 数据库SQL

总体来说,这三个组成部分相互协作,形成了一个完整的数据库系统,在其中用户可以通过用户接口层进行数据操作,SQL接口层负责解析和执行SQL语句,底层驱动程序则负责将数据读写到物理存储设备中。2 SQL接口层就像是一个翻译,将你在用户接口层输入的指令(例如“添加一件商品”、“查询某个客户信息”)翻译成计算机可以理解的语言,并将其传递给底层驱动程序。1 在这个例子中,用户接口层就是你使用的商店管理软件界面,它提供了各种按钮、菜单和输入框等工具,使得你可以直观地进行商品和客户信息的管理。

2023-04-12 15:55:32 654

原创 c++异常处理

在这个例子中,第一个catch块处理std::exception类型的异常,第二个catch块处理std::runtime_error类型的异常,最后一个catch块处理所有其他类型的异常。这里使用了一个try块来包含可能会引发异常的代码,然后使用一个catch块来捕获std::exception类型的异常,并对其进行处理。在这个例子中,第二个catch块使用逗号分隔符同时捕获std::runtime_error和std::logic_error类型的异常。

2023-04-05 21:14:23 1048

原创 c++ 数据抽象和数据封装

在上面的代码中,BankAccount类封装了账号和余额两个数据成员,同时提供了deposit()、withdraw()和getBalance()三个成员函数对账户进行操作。由于数据成员被声明为private,外部无法直接访问,从而实现了数据的安全性和完整性。同时,通过成员函数对数据进行操作,实现了数据抽象的概念。

2023-04-02 21:06:46 217

原创 c++继承

多态性是面向对象编程的一个重要特性,它可以使代码更加灵活和可扩展。另外,需要注意的是,使用 public 继承时,子类可以访问基类的公有成员和受保护成员,但是不能直接访问基类的私有成员。在 C++ 中,继承是通过关键字 class 或 struct 后面跟着一个冒号和基类名称来实现的,基类可以是任何已存在的类,派生类继承了基类的所有公有和受保护的成员,但不继承基类的私有成员。通过 public 继承,子类可以继承基类的公有成员和受保护成员,这样可以避免在子类中重新编写基类的代码,实现了代码的重用。

2023-04-02 15:35:55 324

原创 c++ private protected public 的区别

protected 表示受保护的,只能在当前类和其子类的成员函数中访问,其他类和对象都不能访问。受保护成员变量一般用于类的继承和实现,子类可以访问和修改父类的受保护成员变量。private 表示私有的,只能在当前类的成员函数中访问,其他类和对象都不能访问。公有成员变量和公有成员函数一般用于类的接口和外部调用,提供给外部使用。可以调用 ,必须是在头文件声明的成员函数中调用,也就是说在cpp里进行成员函数的编写。protected:可以在本类内部和子类中访问,其他任何地方都不能访问。

2023-04-02 15:13:55 663

原创 qt 鼠标事件

【代码】qt 鼠标事件。

2023-03-30 15:14:17 110

原创 Qt 事件过滤器

然后执行 mylineedit的 event。首先经过的就是widget的过滤器。最后响应keypressevent。mylineedit添加过滤函数。按照上篇 探究一下事件过滤器。widget 添加过滤函数。

2023-03-30 14:21:49 105

原创 QT Qwidget 事件处理机制

现有QlineEdit 和 widget 都有keyPressEvent Qdebut()

2023-03-29 14:54:28 943

空空如也

空空如也

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

TA关注的人

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