自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【QT】QT的多界面跳转以及界面之间传递参数

/ A界面// 第一个界面:Q_OBJECTpublic:private:delete ui;// 登录按钮的槽函数// 获取输入的用户名和密码//创建第二个界面对象,必须传递this指针(把第一个界面的地址传给第二个界面)// 将第一个界面的账号和密码传递给第二个界面qDebug()<<"第一界面的地址是"<<this;// 显示第二个界面//隐藏第一个界面/*隐藏:把界面转入到系统后台运行,这个界面对象依然存在关闭:界面释放掉,对象不存在了*/

2025-04-01 22:23:01 379

原创 【QT】QT中的信号与槽

Q_OBJECT:QT把它称为元对象系统,作用支持信号与槽这种机制//自定义信号语法格式signals:// 自定义信号;void mysignal(参数);//参数的类型个数依据需要自行添加//发送信号//注意注意注意:自定义的信号必须程序员主动调用emit发送,不能自动触发的emit mysignal(实参);

2025-04-01 21:47:25 667

原创 【QT】练习1

2、用户输入用户名或者密码出错三次,锁死输入框,在密码输入框的旁边加一个按钮,点击第一次的时候密码显示,点击第二次密码隐藏。修改背景颜色:setStyleSheet(“background-color 红绿蓝颜色值”);1、设计一个颜色选择器,可以输入RGB的颜色值,点击确认,可以把主界面的背景颜色改成设置的颜色。

2025-03-31 22:02:09 270

原创 【QT】QT样式设计

右键改变样式表–》打开QT的样式编辑器(有局限性,只能让你设置四种样式)–》添加资源,添加渐变色,添加颜色,添加字体。如果你要设置其它样式,需要程序员自己写代码(把所知道的qss语句写在样式表的下面)指的是让界面设计得更加好看(比如:文字颜色,背景图片,改变倒角,文字对齐…QT中的样式设计,就跟计算机前端(css)中设计网页的样式类似。指的是QT程序中需要用到的素材(比如:图片,音频,视频)

2025-03-29 23:37:52 1070

原创 【QT】新建QT工程(详细步骤)

QT += core gui //添加要使用的QT库 core(核心库) gui(图形用户交互库)greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //添加widgets窗口库TARGET = firstqt //生成的可执行程序的名字TEMPLATE = app //生成QT应用程序mainwindow.cpp //QT工程编译需要用到的源码HEADERS += mainwindow.h //QT工程编译需要的头文件。

2025-03-28 21:37:01 319

原创 【QT】QT中的中文显示乱码解决

2.选择UTF-8—>按编码重新载入。4.同样选择UTF-8—>确定即可。1.编辑栏左键——>选择编码。3.工具栏左键—>选择选项。

2025-03-26 21:51:38 244

原创 【C++】C++中的动态内存分配(new和delete)

第二个: delete只要new分配堆空间的时候使用了[],那么delete对应写上[]malloc calloc realloc free 函数。第一个: new int(999)和new int[999]的区别。第二种:分配一个int大小的堆空间,并赋值。第一种:分配一个int大小的堆空间。第三种:分配多个int大小的堆空间。delete关键字释放堆空间。new关键字分配堆空间。

2025-03-25 20:49:28 416

原创 【C语言】C语言使用随机数srand,rand

【代码】【C语言】C语言使用随机数srand,rand。

2025-03-23 14:58:58 209

原创 【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现

【代码】【Linux文件IO】通过文件IO把bmp图片显示到Linux开发板的实现。

2025-03-23 14:57:05 157

原创 【Linux文件IO】Linux中文件属性与目录操作的API介绍和用法

在应用开发中,经常要获取文件的属性,例如:文件的类型、大小、权限、设备号、最近修改时间等等,比如网络传输文件时,一般都需要先传递文件的属性,等准备妥善了再开始传输文件的真实内容。因此,熟悉文件属性的细节,并熟练获取这些信息的方式至关重要。

2025-03-23 14:54:18 1001

原创 【Linux文件IO】Linux中标准IO的API的描述和基本用法

【代码】【Linux文件IO】Linux中标准IO中API的描述和基本用法。

2025-03-23 14:33:26 330

原创 Linux中查找标准库函数的定义

1、先使用man -f +需要查找的函数名如:man -f read此时Linux会输出:man 3 read可查看到具体函数的定义及描述:man man。

2025-03-23 13:21:33 233

原创 【Linux文件IO】系统IO中API描述和基本使用

quad对文件的操作,除了最基本的打开、关闭、读、写、定位之外,还有很多特殊的情况,比如用于沟通应用层与底层驱动之间的ioctl、万能工具箱fcntl、内存映射mmap等等,熟练使用这些API,是日常开发的必备技能。

2025-03-16 23:50:05 1031

原创 vscode搭建git

5、此时若选择Publish branch ,会默认在远程仓库新建一个与本地仓库同名的仓库((1)步已有步骤),由于我们在githup上已经创建好了远程仓库,所以我们要提交到指定的github远程仓库上,本步骤忽略,直接进行下一步操作。设置代理完成后,再次选择【Publish Branch】,此时本地文件推送到了githup上,分支上显示有云端图标,如下,说明上传到github远程仓库成功。9、选择添加远程仓库后会列出自己github账户上的所有创建的远程仓库名,选择需要放入的仓库即可。

2025-02-04 00:48:56 3132 1

原创 【数据结构】顺序队列与链式队列

只要满足上述条件,那么这种特殊的线性表就会呈现一种“队列是一种逻辑结构,是一种特殊的线性表。”的逻辑,这种逻辑就被称为队列。

2025-01-21 23:01:03 592

原创 【数据结构】双向循环链表实现简易图书管理系统的增删改查

【代码】【数据结构】双向循环链表实现简易图书管理系统的增删改查。

2025-01-21 21:42:31 280

原创 【数据结构】C语言顺序栈和链式栈入栈和出栈操作

栈只是一种数据逻辑,如何将数据存储于内存则是另一回事。一般而言,可以采用顺序存储形成顺序栈,或采用链式存储形成链式栈。只要满足上述条件,那么这种特殊的线性表就会呈现一种“栈是一种逻辑结构,是特殊的线性表。”的逻辑,这种逻辑就被称为栈。

2025-01-14 22:01:43 408

原创 【数据结构】双向循环链表的增删改查操作

NULL)elseprintf("[double_list_init]申请头节点失败\n");

2025-01-02 21:26:25 580

原创 【数据结构】双向链表的增删改查操作

【代码】【数据结构】双向链表的使用。

2025-01-01 17:30:26 385

原创 【数据结构】单向循环链表的增删改查操作

循环链表的操作跟普通链表操作基本上是一致的,只要针对循环特性稍作修改即可,遍历查找节点时,需将遍历的指针指向头节点。单向循环链表指得是将链表末尾节点循环地指向链表表头。

2024-12-28 23:46:26 544

原创 【数据结构】单链表的增删改查操作

链式存储中,所有节点的存储位置是随机的,他们之间的逻辑关系用指针来确定,跟物理存储位置无关,因此从上述示例代码可以很清楚看到,增删数据都非常迅速,不需要移动任何数据。首先,空链表有两种常见的形式。另外注意到,整条链表用一个所谓的头指针 head 来指向,由 head 开始可以找到链表中的任意一个节点。由于头结点是不存放有效数据的,因此如果空链表中带有头结点,那么头指针 head 将永远不变,这会给以后的链表操作带来些许便捷。上图中,所有的节点均保存一个指针,指向其逻辑上相邻的下一个节点(末尾节点指向空)。

2024-12-28 23:35:00 858

原创 【数据结构】顺序表的增删改查操作

quad顺序存储中,由于逻辑关系是用物理位置来表达的,因此从上述示例代码可以很清楚看到,增删数据都非常困难,需要成片地移动数据。顺序表对数据节点的增删操作是很不友好的。优点1.不需要多余的信息来记录数据间的关系,存储密度高2.所有数据顺序存储在一片连续的内存中,支持立即访问任意一个随机数据,比如上述顺序表中中第i个节点是 p->data[i]缺点1.插入、删除时需要保持数据的物理位置反映其逻辑关系,一般需要成片移动数据2.当数据节点数量较多时,需要一整片较大的连续内存空间。

2024-12-08 19:31:22 660

原创 【数据结构】时间复杂度与空间复杂度的介绍

虽然在很多情况下,程序的时空特性是相互制约的,就像鱼与熊掌不可兼得,但我们可以根据程序实际解决问题的侧重点,去平衡时间和空间的对性能的消耗。一段程序的性能指标,既要运行快速,又要节省内存,而通常这两者又是相互制约的,很难兼得。各个元素之间是一种一对一的关系,比如图书馆中的书架的书,除了首尾两本书之外,其余的任意一本书的编号假设是N,都有且仅有一个直接前驱节。与上述线性关系的表述不同,如果各个元素之间不是严格一对一的关系,则被称为非线性关系,比如家族中的各个成员、不同城市间的交通道路等,对。

2024-12-08 16:21:34 680

原创 【freertos】FreeRTOS消息队列的介绍与使用

quad队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、 中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。\quad当队列中有新消息时,被阻塞的任务会被唤醒并处理新消息;

2024-11-25 23:39:06 944

原创 【freertos】FreeRTOS事件标志组的介绍与使用

quad事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。即一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒任务进行事件处理。同样,也可以是多个任务同步多个事件。\quad每一个事件组只需要很少的 RAM 空间来保存事件组的状态。事件组存储在一个 EventBits_t 类型的变量中,该变量在事件组结构体中定义。\quad。

2024-11-25 20:48:44 945

原创 【freertos】FreeRTOS互斥锁的使用

quad互斥量又称互斥信号量(本质是信号量),是一种特殊的二值信号量,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性,用于实现对临界资源的独占式处理,往往默认初值为1。任意时刻互斥量的状态只有两种,开锁或闭锁。当互斥量被任务持有时,该互斥量处于闭锁状态,这个任务获得互斥量的所有权。当该任务释放这个互斥量时,该互斥量处于开锁状态,任务失去该互斥量的所有权。当一个任务持有互斥量时,其他任务 将不能再对该互斥量进行开锁或持有。

2024-11-20 23:08:59 1255

原创 【freertos】FreeRTOS信号量的介绍及使用

quad信号量,Semaphore。\quad信号量常用于任务的同步,通过该信号,就能够控制某个任务的执行,这个信号具有计数值,因此,可以称为计数信号量。\quad计数信号量可以用于资源管理,允许多个任务获取信号量访问共享资源,但会限制任务的最大数目,初值常为共享资源的数量。访问的任务数达到可支持的最大数目时,会阻塞其他试图获取该信号量的任务,直到有任务释放了信号量。

2024-11-17 21:20:10 935

原创 【freertos】FreeRTOS的中断管理与临界区的介绍与使用

quadCortex-M3和M4的NVIC最多支持240个IRQ(中断请求)、一个不可屏蔽中断(NMI)、一个SysTick(滴答定时器)定时器中断和多个系统异常。这里介绍的寄存器有3个:PRIMASK、FAULTMASK、BASEPRI。

2024-11-17 10:19:57 931

原创 【freertos】FreeRTOS时间管理

/系统定时器的重载值//需要的节拍数//刚进入时的计数器值/* 挂起调度器[可选,会导致高优先级任务无法抢占当前任务,但能够提高当前任务时间的精确性] */while(1)if(tnow!=told)/* SYSTICK是一个递减的计数器 */elsetold=tnow;/* 时间超过/等于要延迟的时间,则退出。*/break;/* 恢复调度器[可选] */

2024-11-15 22:54:42 1163

原创 【freertos】FreeRTOS中如何保护共享资源

共享资源的可靠访问,任务必须对数据具有独享权变得极其重要,否则将可能导致任务间的竞争与数据损坏。

2024-11-15 22:53:12 389

原创 【freertos】FreeRTOS任务管理

\quad此函数用来创建一个任务,任务需要RAM来保存与任务有关的状态信息(任务控制块),任务也需要一定的RAM 来作为任务堆栈。如果使用函数xTaskCreate()来创建任务的话那么这些所需的RAM就会自动的从FreeRTOS的堆中分配,因此必须提供内存管理文件,默认我们使用heap_4.c这个内存管理文件,而且宏configSUPPORT_DYNAMIC_ALLOCATION必须为1。如果使用函数xTaskCreateStatic()创建的话这些RAM就需要用户来提供了。新创建的任务默认就是就绪态的,

2024-11-10 18:30:09 833

原创 【freertos】FreeRTOS框架的使用与介绍

但考虑到有些编译器的性能还比较弱,不支持 C 语言的新标准 C99 和 C11 的一些特性和语法,所以 FreeRTOS 的源码中就没有引入 C99 和 C11 的新特性,但是有一个例外,源码中有用到头文件 stdint.h(这个文件是C99标准才引入的)。FreeRTOS是RTOS系统的一种,FreeRTOS十分的小巧,可以在资源有限的微控制器中运行,当然,FreeRTOS 不仅局限于在微控制器中使用。但从文件数量上来看 FreeRTOS 要比μC/OS-II和μC/OS-III小的多。

2024-11-10 13:27:33 1284

原创 【freertos】FreeRTOS介绍

quadRTOS(Real Time OS)即实时操作系统,根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中,每个任务均有一个优先级(类似前面章节的中断抢占优先级),RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。\quadRTOS总是运行优先级最高且就绪的任务。\quad实时多任务操作系统,以分时方式运行多个任务,任务之间的切换以优先级为根据。只有优先服务方式的RTOS才是真正的实时操作系统。\quad。

2024-11-10 12:33:25 857

原创 【stm32】RTC时钟的介绍与使用

BKP(Backup Registers)备份寄存器BKP可用于存储用户应用程序数据。当VDD(2.0-3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位VSS1、VDD1、VSS2、VDD2、VSS3、VDD3是内部数字部分电路的供电,VDDA、VSSA 是内部模拟部分电路的供电,以上四组以VDD开头的供电,都是系统的主电源,在正常使用STM32时,以上四组供电均都需要接到33V的电源上;

2024-11-03 21:10:44 1733

原创 【stm32】DMA的介绍与使用

DMA(Direct Memory Access)直接存储器存取可以直接访问STM32内部存储器,包括运行内存SRAM、程序存储器Flash和寄存器等DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源外设:指的是外设寄存器(一般是外设数据寄存器DR,如ADC的数据寄存器、串口的数据寄存器)存储器:指运行内存SRAM和程序存储器Flash(存储变量数组和程序代码)12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)

2024-10-14 23:46:37 1843

原创 【stm32】ADC的介绍与使用

ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁STM32主要是数字电路,数字电路只有高低电平,没有几V电压的概念,所以如果想读取电压值,就需要借助ADC模数转换器来实现,ADC读取引脚上的模拟电压,转换为一个数据,存在寄存器里,再把这个数据读取到变量中,就可以进行显示、判断、记录等等操作ADC可以将模拟信号转换为数字信号,是模拟电路到数字电路的桥梁。

2024-10-06 10:49:51 3801

原创 【stm32】TIM定时器输出比较-PWM驱动LED呼吸灯/舵机/直流电机

输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能PWM(Pulse Width Modulation)脉冲宽度调制在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域频率 = 1 / T(S)占空比 = T(ON) / T(S)

2024-09-26 00:35:49 1299

原创 【STM32】TIM定时器定时中断与定时器外部时钟的使用

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时72M/65536/65536 = 中断频率时间= 1/中断频率 = 59.65s计数器:用来执行计数定时的一个寄存器,每来一个时钟,计数器加1预分频器:可以对计数器的时钟进行分频,让这个计数更加灵活自动重装寄存器:就是计数的目标值,就是要计多少个时钟申请中断以上这些寄存器构成了定时器最核心的部分,这一块电路称为时基单元。

2024-09-22 13:21:47 1189

原创 【STM32】SPI通信-软件与硬件读写SPI

\quad主机和从机中的移位寄存器有时钟输入端,spi是高位先行,每来一个时钟,移位寄存器向左移位,从机中的时钟源是由主机提供的,即波特率发生器,产生的时钟驱动主机的移位寄存器进行移位,同时,这个时钟也通过SCK引l脚进行输出,接到从机的移位寄存器里\quad工作原理:波特率发生器时钟的上升沿,所有移位寄存器(主机和从机)向左移动一位,移出去的位放到引脚上,波特率发生器时钟的下降沿,引脚上的位,采样输入到移位寄存器的最低位。\quad当执行8个时钟周期后,就实现了主机和从机一个字节的数据交换,即发送数据时

2024-09-09 00:23:29 2505

原创 【STM32】CAN总线基础入门

quadCAN总线(Controller Area Network Bus)控制器局域网总线\quadCAN总线是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域两根通信线(CAN_H、CAN_L),线路少,无需共地差分信号通信,抗干扰能力强高速CAN(ISO11898):125k~1Mbps, <40m低速CAN(ISO11519):10k~125kbps, <1km异步,无需时钟线,通信速率由设备各自约定。

2024-09-06 22:01:47 2982

空空如也

空空如也

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

TA关注的人

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