自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m0_45463480的博客

精心创作,共同进步。

  • 博客(856)
  • 资源 (26)
  • 问答 (1)
  • 收藏
  • 关注

原创 Visual Studio已更新为17.14+集成deepseek实现高效编程

使用 Copilot 实现重构旨提高你在此应用场景中的工作效率,具体体现在让你能够借助 GitHub Copilot 自动实现或在方法中添加重要功能。遇到仅包含 NotImplementedException 引发的空方法时,可以在该 throw 行上选择灯泡 (CTRL+.),然后选择“使用 Copilot 实现”重构****,而 Copilot 将根据现有代码库、方法名称等填写方法的所有内容。利用此功能,可节省宝贵的时间和精力,让你能够更专注于编码,减少用于文档的时间。打开vs2022-工具-选项。

2025-05-18 17:19:02 1275 4

原创 STM32 | FreeRTOS 递归信号量

拥有互斥量的任务必须调用API函数xSemaphoreGiveRecursive()将拥有的递归互斥量全部释放后,该信号量才真正被释放。比如,一个任务成功获取同一个互斥量5次,那么这个任务要将这个互斥量释放5次之后,其它任务才能获取到它。互斥量的使用比较单一,因为它是信号量的一种,并且它是以锁的形式存在。在初始化的时候,互斥量处于开锁的状态,而被任务持有的时候则立刻转为闭锁的状态。如果创建成功则返回一个递归互斥量句柄,用于访问创建的递归互斥量。使能递归互斥量,详细文件在FreeRTOS.h。

2025-05-17 15:28:08 431

原创 STM32 | FreeRTOS 互斥信号量

互斥信号量是一种特殊的二值信号量,用于实现对临界资源的独占式处理。与普通信号量不同,互斥信号量支持所有权、递归访问和防止优先级翻转的特性。互斥信号量的状态只有开锁或闭锁两种,任务持有互斥信号量时处于闭锁状态,释放后则开锁。FreeRTOS中的互斥信号量通过优先级继承机制降低优先级翻转的影响,即当高优先级任务申请被低优先级任务占用的资源时,系统会临时提升低优先级任务的优先级,以减少高优先级任务的阻塞时间。互斥信号量适用于多任务环境下对临界资源的保护,确保资源的独占访问,但不能在中断服务函数中使用。

2025-05-17 15:24:03 896

原创 STM32 | FreeRTOS 事件标志组

但是它与信号量不同的是,事件的发送操作是不可累计的,而信号量的释放动作是可累计的。而任务2对事件3与事件5感兴趣(逻辑与),当且仅当事件3与事件5都发生的时候,任务2才会被唤醒,如果只有一个其中一个事件发生,那么任务还是会继续等待事件发生。在某些场合,可能需要多个时间发生了才能进行下一步操作,比如一些危险机器的启动,需要检查各项指标,当指标不达标的时候,无法启动,但是检查各个指标的时候,不能一下子检测完毕啊,所以,需要事件来做统一的等待,当所有的事件都完成了,那么机器才允许启动,这只是事件的其中一个应用。

2025-05-17 15:17:57 687

原创 STM32 | FreeRTOS 消息队列

队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。3. 在获取队列中的消息时候,我们必须要定义一个存储读取数据的地方,并且该数 据区域大小不小于消息大小,否则,很可能引发地址非法的错误。

2025-05-17 15:10:30 677

原创 STM32 | 软件定时器

软件定时器是通过程序模拟的定时器,能够由单个硬件定时器模拟出多个软件定时器,解决了硬件资源限制的问题。然而,软件定时器在运行和维护时会消耗CPU资源,且精度低于硬件定时器,常用于简单的定时控制,如喂狗、控灯等。在Linux、μC/OS、FreeRTOS等操作系统中,软件定时器的实现原理相似:通过硬件定时器产生时钟节拍,程序定期扫描所有运行中的软件定时器,比较其到期时间与全局时钟标记,判断是否到期并执行回调函数。配置软件定时器时,需设置优先级、队列长度和任务堆栈大小。FreeRTOS中,软件定时器的创建、启动

2025-05-17 14:23:42 872

原创 Linux | Uboot-Logo 修改文档(第十七天)

将准备好的“.bmp”格式的图片拷贝到 uboot 的“/tools/logos”目录下,作者拷贝的文件为将图片名称修改为“freescale.bmp”。使用命令“tar -xvf uboot-imx-rel_imx_4.1.15_2.1.0_ga_20200323.tar.gz ”解压 uboot。要修改 uboot 配置的屏幕信息,使用命令“vi ./board/freescale/mx6ul_topeet/mx6ul_topeet.c”。将最后一个的值修改为“qn_enable”,如下图所示。

2025-05-11 21:54:50 293

原创 Qt还有希望吗

😬市场竞争压力不小跨平台框架竞争激烈,Flutter、React Native、Electron 等来势汹汹,不过 Qt 凭借性能和资源控制优势,还能稳住阵脚。开源协议和商业化策略可能是个坑,LGPL 和商业双许可模式,要是公司调整授权策略,比如限制开源版本功能,社区可不答应。🌌2025 年 Qt 价值预测乐观来看,若 Qt 持续优化对新兴技术支持,保持开源社区活跃,在嵌入式、汽车和工业领域价值飙升,有望成智能设备开发首选框架。商业公司战略调整,Qt 母公司决策,像定价、功能优先级,直接影响市场地位。

2025-05-07 21:57:30 3020 3

原创 Linux | 修改开机进度条修改文档(第十六天)

前提配置环境变量,Yocto 环境的交叉编译器是之前通过 yocto 获取的即 fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh。“source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi”,添加编译器。将文件系统打包,注意打包的路径要写对,然后烧写,启动。

2025-05-01 14:05:55 143

原创 “Everything“工具 是 Windows 上文件名搜索引擎神奇

搜索文件类型,请在搜索框输入扩展名, 例如,搜索 mp3 文件,输入 *.mp3 即可。UAC 警告可以通过以标准用户运行 "Everything" 和安装 "Everything" 服务或不使用 NTFS 索引来避免。不像 Windows 内置搜索,"Everything" 默认显示电脑上每个文件和文件夹 (就如其名 "Everything")。可以,"Everything" 可以通过搜索函数 content: 来搜索文件内容。免费,"Everything" 是一款免费软件。

2025-05-01 12:31:08 1297

原创 Linux | Mfgtools 修改单独只烧写 Uboot,内核,文件系统

2. 打开“Profiles\Linux\OS Firmware\ucl2.xml 文件,修改此文件。图 3 是修改 NAND 的板子,如果您想。就把下面图一的代码注释掉,其余的不要动。,就注释掉下面图二的代码,其余的不要动。就注释掉下面图三的代码,其余的不要动。图 1 是修改 NAND 的板子。图 2 是修改 EMMC 的板子。是修改 EMMC 的板子,如果您想。是修改 EMMC 的板子,如果您想。就把下图的代码注释掉,其余的不要动。图 6 是修改 NAND 的板子。图 7 是修改 EMMC 的板子。

2025-04-26 19:54:00 190

原创 Linux | I.MX6ULL 文件系统

如果用户的文件系统非我们的出厂版本,请参考之前烧写章节重新烧写出厂文件系统。这里我们注意,商业级核心板的“/dev/mmcblk1p1”设备是 emmc 为内核设备树提供的单独分区。我们在测试 qt 程序时经常会用到 U 盘 TF 卡拷贝程序,yocto 系统在使用这些设备时会自动挂载,非常方便。用户可以在文件系统启动之后,通过控制台命令来实现背光调整,参考命令如下。首先启动开发板,我们将 U 盘插入 USB 接口会有如下图打印信息。具体的值,用户可以根据自己的需求进行更改。”查看对应分区挂载的目录。

2025-04-20 18:17:24 84

原创 Linux | I.MX6ULL 使用 Yocto 文件系统开发 QT

01Yocto 文件系统默认支持了 QT,那么我们要怎么在 Yocto 文件系统来运行我们的 QT 程序呢?本章节我们就来学习上在 yocto 文件系统+Ubuntu 环境来开发 QT 程序。注意,开发环境是基于“qtcreator-3.5.1”(Ubuntu16.04.6),库文件是Qt5.5.102(1)首先我们将“qt-opensource-linux-x64-5.5.1.run”通过 SSH 工具传到 ubuntu 上/root 目录上,如下图。

2025-04-19 19:55:12 183

原创 Linux | I.MX6ULL 内核的编译(13)

在编译 Uboot 和内核源码之前,我们需要安装三个第三库他们分别是:lzop、libncurses5-dev、u-boot-tools。我们可以根据上表的提示,将对应的镜像拷贝到 Windows 系统下,然后使用 MFGTools 烧写工具烧写到开发板运行。本章我们就来学习一下如何将 NXP 官方提供的 Linux 内核移植到【苏电子】 i.MX6UL 终结者开发板上。,我们根据核心板的类型,将对应的镜像文件整理成下表所示。从上图可以看到生成了十几个设备树文件,因为苏电子的。包移植到我们自己的平台上。

2025-04-18 15:41:45 184

原创 Linux | I.MX6ULL Uboot 编译(12)

然后就可以将其烧录到i.mx6ull开发板。更多内容查看i.MX6ULL合集。将这个文件拖到ubuntu16。

2025-04-18 15:21:32 69

原创 Linux | I.MX6ULL外设功能验证(11)

然后我们使用 CAN1 作为数据发送端,我们在调试串口终端输入“cansend can16A0#11.22.33.44.55.66.77.88”命令,发送数据,其中的 6A0 是帧 ID,#后面的是数据,共 8 个字节。从上图我们可以看到 CAN1 发送数据以后,后台运行的 CAN0 接收程序收到了 CAN0 的数据,并显示出来,接收到的数据和发送的数据内容一致。i.MX6ULL 开发板的 OTG 接口,可以用作烧写的接口,同时在系统启动之后,可以用作 host 模式,可以当做 USB 来使用。

2025-04-10 21:57:23 126

原创 Linux | I.MX6ULL外设功能验证(第10天)

在本节的所有功能测试中,我们使用的是 Yocto的文件系统。

2025-04-08 21:01:36 143

原创 Linux | I.MX6ULL开发板固件烧录所需文件详述(9)

商业级的核心板,它的存储是 EMMC 的,EMMC 的存储是类似于正方形的芯片,旁边是 NAND FLASH的一个封装,因为我们这里要兼容 NAND FLASH ,这里是一个兼容的设计。

2025-04-05 21:15:37 168

原创 Linux | 安装超级终端串口软件连接i.MX6ULL开发板(8)

Linux | 安装超级终端串口软件连接i.MX6ULL开发板

2025-04-04 19:28:13 299

原创 Linux | I.MX6ULL内核及文件系统源码结构(7)

支持 Busybox(1.29.0)、buildroot(2019.02.9)、Ubuntu(16.04.6)这四种文件系统。支持 EMMC,NAND FLASH;版本:2016.03。支持环境变量修改保存。USB HOST驱动。Sil9022A驱动。

2025-04-02 21:38:36 353

原创 Qt | 电脑音频采集曲线Charts

audio + 音频采集曲线chart。

2025-04-01 21:32:07 241

原创 Linux | I.MX6ULL 终结者底板原理图讲解完(6)

上图中的 U37 是光环境传感器 AP3216C,该芯片可以感应周围光线的强弱,接近距离和红外强度,使用的是 I2C 的接口,I2C1_SCL 和 I2C1_SDA 分别连接到 i.MX6ULL 的 UART4_TX_DATA、UART4_RX_DATA 这两个。我们使用 I2C 来访问它。从上图可以看到红外接收模块(U38)使用的是 HS0038B 模块,该模块的原理很简单,使用 3.3V 供电,数据输出引脚 UART2_RXD 连接到 i.MX6ULL 的 UART2_RX_DATA 引脚上面了。

2025-04-01 21:14:48 190

原创 Linux | I.MX6ULL 终结者底板原理图讲解(5)

开发板采用标准的 TF 卡插座,采用 USDHC 驱动,SD1_DATA0、SD1_DATA1、SD1_DATA2、SD1_DATA3 是4位数据总线,分别连接到i.MX6ULL的SD1_DATA0~SD1_DATA03引脚上面。CH340G的工作电压支持 3.3V、5V,甚至是 3V,从上图可以看到我们给 CH340G 的电压是 5V,并且是 Mini USB 接口提供的 5V 电源,与开发板上的电源是独立的,只要我们接上 USB 线 CH340G 就会上电。其中上面的 LED1 是系统电源指示灯。

2025-03-31 21:05:47 279

原创 Linux | I.MX6ULL 终结者底板原理图讲解(4)

从上图我们可以看到 RS485 实际上是串口通过一个 485 协议转换芯片(SP3485EN)转换出来的,由于SP3485EN 这个芯片是半双工的(收发不能同时进行),所以需要一个收发方向的控制引脚(SP3485EN 芯片的 2、3 引脚),一般这两个收发方向控制的引脚会连接到 CPU 处理器,软件除了要操作串口的收发,还需要控制这两个引脚的状态,这样会增加软件的工作量。因此我们可以使用专门的复位芯片,它能够排除瞬间的干扰,又可以防止系统在启动和关闭期间的误操作,保证系统的稳定。

2025-03-30 20:07:36 315

原创 Linux | I.MX6ULL 终结者底板板载资源介绍(3)

开发板通过一个 20pin 的连接器(J47)引出了两路 TTL(3.3V)的串口,同时引出了 5V,3.3V,1.8V电源,可以很方便的给外接模块提供电源,通过此接口可以连接【007】的 GPS 模块,用户也可以连接自己的其它串口设备(需要 3.3v TTL 的串口设备)。开发板板载了一路 Mini USB 接口(J49),该接口是通过板载的 USB 转串口芯片 CH340(U59)引出的,它可以实现 TTL 串口和 USB 接口之间的数据转换,我们通过该接口可以在电脑上看到开发板的调试串口打。

2025-03-30 12:06:29 160

原创 如何学习Python编程?

阅读Python编程书籍,如《Python编程:从入门到实践》、《流畅的Python》等,这些书籍通常包含理论和实践项目,有助于加深理解。:利用在线资源进行学习,例如Python官方网站、Codecademy、Coursera、edX等平台提供了大量的Python课程和教程。:通过练习来巩固所学知识,可以从小型项目开始,比如计算器、简单的游戏、数据处理任务等。:首先,理解Python的基本概念和语法,如变量、数据类型、运算符、条件语句、循环、函数等。:在完成项目或练习后,向他人展示你的代码并寻求反馈。

2025-03-29 21:30:41 438

原创 Linux | i.MX6ULL 终结者了解开发板(2)

Linux | i.MX6ULL 终结者了解开发板(第二天)

2025-03-29 21:27:03 143

原创 Linux | i.MX6ULL 终结者学习指南(1)

比如 VMware, Ubuntu 系统安装包,SecureCRT,SSH 文件传输工具,网络调试助手等等)02_NAND FLASH 核心板 (支持 NAND FLASH 核心板的 Uboot 镜像)(保存的是 Busybox,Buildroot,Yocto,Ubuntu 四种文件系统源码)(Busybox,Buildroot,Yocto,Ubuntu 文件系统的镜像)(保存的是开发板的 Uboot,Linux,以及各种文件系统的镜像)

2025-03-28 21:10:36 136

原创 Linux | 交叉编译器的安装和使用(ARM)

使用 file 命令来看下,这里显示的架构是 arm ,说明我们这个可执行文件是在开发板上运行的而不是在 X86 上运行的,可以看到,使用 gcc 编译器编译出来的可执行文件,它的架构是 X86 的,所以我们使用 gcc编译器编译完的可执行程序只能在 X86 的 ubuntu 上运行,不能在 arm 上运行。因为我们使用 ARM 的编译器编译完了之后,是把我们的可执行程序放到开发板上来运行,而不是在 PC 上运行的,这个过程大家可以把它理解成交叉,然后再和我们的编译器结合起来就叫做交叉编译器。

2025-03-23 11:08:11 588

原创 Linux | 安装 Samba将ubuntu 的存储空间指定为windows 上的一个磁盘

使用 samba 我们也可以实现 win 和 ubuntu 互传文件,经常和 tftp 软件搭配着来用,比如说我们要拷贝的文件在 ubuntu 上的路径比较深比较长,我们就可以使用 tftp 软件来实行,如果说这个路径不深,就在我们的根目录下或者家目录下,我们就可以直接使用 samba 来传,这两个软件并不是互相排斥的,tftp 软件是我们开发必备的软件,而 samba 是提升我们开发体验的软件这两个软件是互相配合的。但是有一个细节要注意,我们共享的 samba 目录,这个目录一定要真实存在。

2025-03-22 22:11:37 574

原创 Linux | ubuntu安装 SSH 软件及测试工具

在使用 ssh 之前,我们需要检查下我们的网络环境,我们要看一下,windows 电脑能不能能和虚拟机ubuntu 他们俩的网络是可以互相 ping 通的,我们来查看下,首先要打开 windows 的 cmd 工具,我们来看下 windows 的 ip 是多少,查看 windows 的 IP 使用的是。最后一步,我们要重启下 ssh 的服务,然后在终端输入“/etc/init.d/ssh restart”命令,重新启动 ssh服务然后输入密码,点击授权.pwd=xufw 提取码: xufw。

2025-03-22 20:36:58 491

原创 Linux | 安装 VMware Tool 工具

一般都是放第三方程序的,所以我们在 opt 文件夹下操作,这里要执行 sudo 以管理员的身份来执行,我们文件夹的名字叫 vmtool 是作者自己起的,然后把这个压缩包解压到我们创建的 vmtool 这个文件夹里面。解压成功后,作者进到根目录下 vmtool 这个文件夹下,然后就可以看到解压生成的文件了,我们进到这个文件夹,以 .pl 为结尾的就是我们的安装文件,我们来运行下这个文件,运行这个安装文件我们也要。接下来我们安装 VMware Tool ,在安装之前我们先对虚拟机进行设置,点击编辑虚拟机设置

2025-03-22 12:10:30 321

原创 Linux | make和Makefile命令详细篇

Linux | make和Makefile命令详细篇

2025-03-22 11:25:23 1393

原创 Linux | 环境变量PATH+编写第一个自己的命令

>>革命尚未成功,同志仍需努力!!!道阻且长,回头看看来时的路,满是星辰。

2025-03-20 20:06:29 526

原创 Linux | gcc编译篇

如果我们不使用 -o 参数指定我们生成文件的名称,直接输入 gcc hello.c 编译完会得到一个 a.out 文件,执行这个 a.out 的结构和执行 hello 是一样的。,编译器会对头文件或者宏定义进行展开,或者条件编译的选择我们可以使用 -E 参数得到预处理文件。:使用 -static 参数就是静态链接,因为程序里面包含了需要的库,所以体积比较大,-c 参数 可以把 hello.s 文件编译成 hello.o 文件。-S 参数 将 hello.i 文件编译成 hello.s 文件。

2025-03-19 21:28:16 643

原创 C++实现的数据结构示例,涵盖链表、数组、树和图

每个实现都遵循数据结构的核心原理,同时保持了代码的简洁性和可读性。可以根据具体需求在这些基础实现上添加更多功能或进行优化。

2025-03-18 20:12:45 331

原创 gcc 有多强大?

GCC(GNU Compiler Collection)是开源编译器领域的标杆工具之一,其强大之处体现在多个层面,从底层硬件支持到高级语言特性,再到生态系统的完备性。

2025-03-18 20:07:58 984

原创 Linux的根目录全知道

理解这些目录的结构与用途,是高效管理Linux系统的基础!,定义了各目录的用途。Linux的根目录(

2025-03-18 20:03:49 891

原创 嵌入式Linux | 什么是 BootLoader、Linux 内核(kernel)、和文件系统?

就好比我们的虚拟机是一台独立的机器,和我们这个局域网下的任何机器都没有关系,当然和我们的主机也没有关系,这个我们一般不用。它是运行在操作系统上面,通过调用操作系统的资源去工作,是最终的业务逻辑,比如我们。功能的时候,一定要用桥接模式,用别的模式都是不行的,这里直接选桥接模式是没有问题的。就好比,把虚拟机和电脑主机都连接到了同一个局域网下,在这个局域网下,然后设置处理器,因为作者的电脑是四核的,所以我直接把这儿设置成。但是在这个局域网下的另外的主机是不能访问我们的虚拟机的。的一个特点,它不像其他操作系统。

2025-03-17 21:26:32 705

原创 Qt | 网络编程+面试题

QNetworkInterface 是 Qt 框架中的一个类,用于获取和操作网络接口(网卡)的信息。通过这个类,开发者可以访问本地计算机上所有网络接口的详细信息,包括接口名称、索引、MAC 地址、IP 地址等。这个类对于需要进行网络配置或监控的应用程序非常有用。QDeadlineTimer 是 Qt 框架中的一个类,用于处理定时器操作,特别适用于需要在某个时间点前完成操作的场景。数据报文通常用于 UDP(用户数据报协议)通信,它是一种无连接的协议,允许应用程序发送独立的数据报文而无需建立持久的通信链路。

2025-03-16 11:40:15 176

嵌入式PC端虚拟串口端口生成及串口调试工具.rar

只要是编程人员,这两个工具你一定要使用。 【1】打开第一个文件Setup.exe,双击setup进行安装,安装位置可以自定义,安装完成后把对号去掉(launch...) 【2】在桌面上找已经安装软件快捷方式【Launch Virtual Serial Port Driver】,右键,打开文件所在位置。 将文件caack中的补丁【vspdpro.exe】拖到文件所在位置,替换,安装完成!

2023-08-08

SQLite是数据库,在Qt中实现,用于存储用户信息

Qt 实现SQLite全部语法 【1】SQLite Qt界面设计 【2】SQLite Qt数据库创建、打开、关闭、删除 【3】SQLite Qt表格的创建 【4】SQLite Qt表格的插入 【5】SQLite Qt表格的查询 【6】SQLite Qt表格的删除 【7】SQLite Qt表格的更新 【8】SQLite Qt表格的结构 【9】SQLite Qt表格的修改 【10】SQLite 常用内置函数举例 1、计算表格行数 2、计算表格某列最大值 3、计算表格某列最小值 4、计算表格某列平均值 5、计算表格某列总和 6、计算一个随机数 7、计算绝对值 8、字符串转化大小写 9、计算字符串长度 10、效果 【11】SQLite 日期函数 【12】SQLite LIKE和GLOB子句(通配符) 【13】SQLite LIMIT子句 (限定行显示) 【14】SQLite 表格排序 (升序、降序) 【15】SQLite GROUP BY子句 (分组) 【16】SQLite HAVING 子句(分组的条件) 【17】SQLite DISTINCT 关键字(去重) 【18】SQLite 交叉连接

2023-06-24

QT EventFilterQChartsQDataStreamQDir

androidandroidopenc 雄甾烷 EventFilterQChartsQDataStreamQDir EventFilterQChartsQDataStreamQDir FileQLabelQPainterQPushButtonQPushButton1 FileQLabelQPainterQPushButtonQPushButton 1 创建日期: 2022/9/18 创建日期:2022/9/18 QSpeech QSpeech 大小:82.5 MB 大小:82.5MB QT Camera solree oue QT相机独树OUE 文件夹: build-QPainte 文件夹:Build-QPainte QT_RB QT_Rb QTextCodecQTWidgetwidgetTEST QTextCodecQTWidgetwidgetTEST V4L2 camera display QThreadV4L2 camera display QTimerYD-Ul V4L2相机显示QThreadV4L2相机显示QTimerYD-Ul

2023-02-19

QT 文件操作 事件过滤器 鼠标移动事件

QT学习资料 QT 文件操作 事件过滤器 鼠标移动事件

2023-02-19

基于数据结构商品购物系统 项目.zip

#include <stdlib.h> #include <stdio.h> #include <string.h> #include "program.h" //注册资源管理器 (商品头结点 购物车头结点 管理器头节点 初始化) extern node_t *register_resouse_manage(void) { //为管理结构体申请一块内存 node_t *new_manage_node; new_manage_node = malloc(sizeof(node_t)); //存储商品信息或购物历史信息 if(new_manage_node == NULL) { free(new_manage_node); return NULL; } //申请商品链表头结点 申请成功应该初始化 传入文件信息 new_manage_node->com_info_list = request_commodity_list_node(); printf(

2022-05-01

第八天-内核链表排序.zip

第八天-内核链表排序.zip

2022-05-01

第三天-队列与栈的逻辑与单向循环链表.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef struct list_node{ int data; struct list_node *next; }node_t;//链表节点类型 //不安全的遍历 #define list_for_each(head, pos) for(pos=head->next; pos!=head; pos=pos->next) //安全的遍历 #define list_for_each_safe(head, pos, n) for(pos=head->next, n=pos->next; pos!=head; pos=n, n=n->next) node_t *request_link_list_node(void) { node_t *new_node; new_node = malloc(sizeof(node_t)); if(new_node == NULL) { perror

2022-05-01

内核链表代码111.zip

/* * @Author: your name * @Date: 2021-09-01 17:01:47 * @LastEditTime: 2021-09-01 17:35:15 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \Desktop\kernel_list\main.c */ #include <stdio.h> #include <stdlib.h> #include "list.h" typedef struct big{ int data; struct list_head list; }node_t; typedef struct one{ int data; struct list_head list; }node_one_t; typedef struct two{ int data; struct list_head list; }node_two_t; no

2022-05-01

第六天-内核链表及二叉树.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <list.h> struct student_info{ char name[4096];//姓名 short age;//年龄 float height;//身高 }; //大结构体 typedef struct list_node{ struct student_info data; struct list_head list;//导入内核链表小结构体 }node_t;//链表节点类型 //申请空间 node_t *request_link_list_node(void) { node_t *new_node; new_node = malloc(sizeof(node_t)); if(new_node == NULL) { perror("申请链表节点失败"); return NULL; }

2022-05-01

第七天-二叉树与排序算法.zip

int main(int argc, char **argv) { // 打开一个包含百万数据级别的文件 FILE *src = fopen("numbers.txt", "r");//只读方式打开 if(src == NULL) { perror("打开文件失败"); exit(0);//结束程序 } // 1,将原始数据文件,分割成N个有序的子文件 bool done = false; char file[20]; int N = 0; int wanted = 10*10000; // 假设每次只能读取10万个数据 int infact = wanted;//狂铁:10万伏特 while(1) { // 试图从文件读取 wanted 个数据 unsigned *data = calloc(wanted, sizeof(unsigned));//申请10万块,每块4字节 for(int i=0; i

2022-05-01

第四天-双向循环链表.zip

int main(void) { int input_value; node_t *list_head, *new_node;//申明两个链表节点的指针变量,其中list_head用来存放链表的头节点,new_node用来临时存放一下新申请的节点 //新建链表头节点 list_head = request_list_node(); while(1) { scanf("%d", &input_value); if(input_value > 0) { //新建节点 new_node = request_list_node();//新申请一个节点 new_node->data = input_value;//将数据存放进去这个节点当中 //将这个新的节点插入到list_head所对应的表格中 insert_node_to_list_tail(list_head, new

2022-04-25

第一天-数据结构概念及顺序表.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define SQL_NUMB 10 typedef struct sequance_list{ int array[SQL_NUMB];//这个是用来放数据的 int last;//这个是用来记录上面的数组用到第几个元素的 }sql_t; //函数返回结构体地址【因为这样才能利用里面的数据】 sql_t *request_sequence_list(void) { sql_t *new_sql;//定义一个结构体变量 //堆是由程序员自己申请的,所以要自己使用释放函数释放,栈是系统自己释放 new_sql = malloc(sizeof(sql_t));//申请一块结构体大小的内存 if(new_sql == NULL) { perror("申请内存失败"); return NULL; } new_sql->last = -1;//初始化以下,数组是从0开始保存数据,-1就是没有数据 return new_sql;//返回

2022-04-23

第二天-单向链表.zip

int main(void) { int input_value; node_t *list_head, *new_node; //新建头节点 list_head = request_link_list_node(); if(list_head == NULL) return -1; list_head->data = -1; while(1) { scanf("%d", &input_value); if(input_value > 0) { //新建节点 new_node = request_link_list_node(); new_node->data = input_value; //将节点插入到表格当中 insert_node_link_list(list_head, new_node);

2022-04-23

QT软件工具使用.zip

解压文件夹--》配置windows环境变量(右键计算机--》属性--》更改设置--》高级--》环境变量--》Path中添加你解压的mplayer.exe所在的路径)

2022-04-23

QT中项目第二个.zip

//识别图片 void CarSystem::on_regBt_clicked() { //识别--pPath是成员变量保存车头照片路径 cv::Mat plateImage = cv::imread(pPath.toUtf8().data());//要识别的车牌照片路径(要清晰,正面) //定义一个容器存放识别结果 //RunPiplineAsImage()根据你提供的车牌照片识别车牌 std::vector<pr::PlateInfo> res = carPrc->RunPiplineAsImage(plateImage,pr::SEGMENTATION_FREE_METHOD); float conf = 0; //保存识别的车牌号码 std::string plateNumber = ""; //新式for循环 for (pr::PlateInfo st : res) { if (st.confidence>0.70) //判断识别率,识别结果中识别率高于90% {

2022-04-23

10.QT项目第一个.zip

#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDir> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); pp=2; //设置窗口标题 setWindowTitle("客户端008"); //初始化套接字对象 sock=new QTcpSocket(this); //绑定客户端自己的ip和端口号 sock->bind(QHostAddress("192.168.24.86"),7000); //关联readyRead()信号 connect(sock,SIGNAL(readyRead()),this,SLOT(recvservermsg())); //设置水平头 --》树状列表框的树根 ui->treeWidget->setHeade

2022-04-23

9.串口编程QT实现教程

9.串口编程QT实现教程

2022-04-17

7.QT数据库入门学习

7.QT数据库入门学习

2022-04-17

7.网络编程,Http和JSON解析,事件

7.网络编程,Http和JSON解析,事件

2022-04-17

6.多线程,菜单栏,打包QT程序,其它组件

6.多线程,菜单栏,打包QT程序,其它组件

2022-04-17

5.列表框,交叉编译QT程序,QT控制硬件,多进程

5.列表框,交叉编译QT程序,QT控制硬件,多进程

2022-04-17

4.消息盒子,对话框,定时器,日期和时间

4.消息盒子,对话框,定时器,日期和时间

2022-04-17

3.多界面跳转,界面传递参数,布局管理器

3.多界面跳转,界面传递参数,布局管理器

2022-04-17

2.QString,信号与槽,设计ui的两种方式

2.QString,信号与槽,设计ui的两种方式

2022-04-17

1.QT环境搭建,QT工程,ui界面设计,代码登录

1.QT环境搭建,QT工程,ui界面设计,代码登录

2022-04-17

语音离线识别包,可通过局域网通信实现语音交流

语音离线识别包,可通过局域网通信实现语音交流

2022-04-17

RFID射频识别你了解多少,开车刷卡,蓝牙刷卡,门禁卡等等,代码实现编写,A,B命令字带你掌握

RFID射频识别你了解多少,开车刷卡,蓝牙刷卡,门禁卡等等,代码实现编写,A,B命令字带你掌握

2022-04-17

串口编程让你了解什么是同步和异步吗?进来看看

串口编程让你了解什么是同步和异步吗?进来看看

2022-04-17

JLINK使用驱动下载,ST-LINK驱动及教程,STM32F4串口下载软件(FLYMCU),ST-LINK官方驱动.zip

之前所有正点原子 STM32 教程讲解的调试工具都是以 JLINK 为例。由于德产 J-LINK 价格非常昂贵,而国产 J-LINK 因为版权问题将在万能的淘宝销声匿迹。所以我们有必要给大家介绍 JTAG/SWD 调试工具中另外一个主流仿真器 ST-Link 的使用方法,让大家在今后的 STM32学习中,能熟练掌握 JTAG/SWD 调试配置方法。 如果你已经了解了 JLINK 的使用方法,那么 ST-Link 的使用方法将会非常简单,几乎 99% 的操作方法都是一模一样的。几乎所有 JTAG/SWD 仿真器的使用都有下面三个方面的知识: 1. 驱动的安装。 2. 编程软件(MDK)配置。 3. 固件升级方法

2022-04-05

led驱动-各种版本的mplayer-arm+linux-gnueabi-5.4.0.tar.xz+Qt-Embedded-5.

LED驱动:GEC6818开发板上的灯驱动 各种版本的mplaye: 音视频播放器,使用命令即可播放,支持win10和开发板,应用于各种场合,特别是语音识别技术,很多毕设都是用这个做的。 gcc编译工具:arm+linux-gnueabi-5.4.0.tar.xz, 解压命令:tar -zxvf arm+linux-gnueabi-5.4.0.tar.xz linux或者开发板编译工具,gcc main.c -o main生成可执行文件,,,运行 ./main QT交叉编译工具:Qt-Embedded-5 (1)把我给的5.4.0的编译器拷贝到家目录,然后解压 tar -xf arm-linux-gnueabi-5.4.0.tar.xz (2)配置一下环境变量 export PATH=你的新的arm-linux-gcc所在的路径:$PATH //一次性的

2022-04-05

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

TA关注的人

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