自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (2)
  • 收藏
  • 关注

原创 利用串口空闲中断接收不定长数据

和普通串口中断的唯一区别。

2024-05-22 20:36:16 64

原创 任意设定蜂鸣器响的次数

首先,我自己画了一个蜂鸣器的小模块,用来测试的。这次来分享一个比较有意思的知识点。

2024-04-02 21:10:27 237

原创 点阵LCD屏幕,菜单常用写法

众所周知,点阵屏只有黑白两种颜色。这次就来分享我常用的菜单编写框架。还是挺简单的,记录一下,以免后面忘记。

2024-04-02 09:23:08 137

原创 Qt学习--通用类

2024-03-23 07:58:55 140

原创 Qt学习--界面知识点大杂烩

在开发过程中,通常需要打开或者保存上位机数据到本地,这时候就需要用到。

2024-03-21 21:06:25 157

原创 Qt学习--多态(虚函数)

virtual总结:多态满足条件●有继承关系●子类重写父类中的虚函数多态使用条件●父类指针或引用指向子类对象重写:函数返回值类型函数名参数列表完全-致称为重写。

2024-03-19 17:22:20 394

原创 Qt学习--继承(并以分文件实现)

一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数。定义一个派生类,我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名。总结:简单来说,父类有的,子类都可以继承(前提是public访问权限),而子类又可以添加自己特有的属性。1.首先包含头文件,我这里就是包含 #include "animal.h"那么,这时候,我想在main里面调用这些类,该怎么做呢?如果要创建一个派生类来继承基类,该怎么做呢?如果要在main中使用这头猪,只需要。2.创建一个类,类名叫:Animal。

2024-03-18 22:40:55 593

原创 Qt学习--构造函数&析构函数

当对象的生命期结束时,会自动执行析构函数。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。析构函数(destructor)也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。析构函数的名称与类的名称是完全相同的,只是在前面。构造函数&析构函数,

2024-03-16 12:52:10 531

原创 Qt学习--this指针的使用

当一个对象的成员函数被调用时,编译器会隐式地传递该对象的地址作为 this 指针。是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。指针,因为友元不是类的成员,只有成员函数才有。指针是一个特殊的指针,它指向当前对象的实例。在 C++ 中,每一个对象都能通过。指针来访问自己的地址。

2024-03-15 21:20:49 489

原创 Qt学习--C++基础知识(类&对象&函数的重载)

在 C++中,一个类包含另一个类的对象称为组合(Composition)。这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。于表示一个类是由另一个类的对象组成的。这种关系通常表示一种"拥有"("has-a")的关系。:: 这个叫作用解析运算符,这个是比较重要的一个知识点。在同一个作用域内,可以声明几个功能类似的同名函数,普通变量访问成员变量或者成员函数,使用 “意思是set这个函数,隶属于Box这个类。指针变量访问成员变量或者成员函数,使用“”运算符,像C语言的结构体用法。

2024-03-14 21:16:12 602

原创 Qt学习--自定义命名空间

通过使用自定义命名空间,你可以有效地组织你的代码,并减少不同库之间的名称冲突。这在大型项目和团队协作中尤其重要。假设我们要创建一个命名空间来包含与圆形相关的功能。我们可以命名这个命名空间为。的命名空间,其中包含了计算圆的面积和周长的函数,以及 圆周率常量 PI。在main.h 里面包含一下就可以直接食用了。在这个头文件中,我们定义了一个名为。如何使用自己创建的 命名空间呢?问该命名空间中的函数和常量。中,我们首先包含了定义。

2024-03-14 12:43:49 353

原创 Qt学习--QT Creator使用基本介绍

话不多说,直接开搞,笔者用的是5.12.9版本。就弹出了一个这个,空的,因为我们啥也没写。双击打开QT Creator。

2024-03-14 12:29:02 668

原创 STM32驱动SHT30温湿度传感器

这次分享stm32驱动sht30温湿度传感器的方法和代码,这款传感器是仪器仪表行业上常用的一款型号。

2024-02-28 16:01:39 889

原创 stm32---输入捕获实验实操(巨详细)

这次来分享上次没说完的输入捕获的知识点实验中用到两个引脚,一个是通用定时器 TIM3 的通道 1,即PA6,用于输出 PWM 信号,另一个是高级控制定时器 TIM1 的通道 1,即PA8,用于 PWM 输入捕获,实验中直接用一根杜邦线短接即可 PA6 和 PA8 即可,同时可用示波器监控 PA6 的波形,看看实验捕获的数据是否正确。PA6:用定时器的输出比较功能输出波形。PA8:用定时器的输入捕获功能捕获波形。步骤1.通用定时器产生 PWM 配置2.高级定时器 PWM 输入配置。

2024-01-08 20:31:59 2490

原创 stm32输入捕获实操

程序全速跑的时候(这时候我没有用杜邦线接入PA2(产生50%占空比的引脚)),始终不会进入TIM_IT_CC2这个中断的,这个始终是RESET,当我接入PA2的时候,就会进来中断,说明捕获到了上升沿,实际情况也是如此嘛。3.用PA1引脚来测上升沿捕获,看是否成功,如果成功,就让一个标志位置一,从而来判断是否捕获到上升沿,那么下面来看代码吧,根据代码来解释。定时器的功能挺强大的,可以输出一定的波形,又可以作为时基,还可以输入捕获,y1s1,真的太强了。还是挺简单的,后续继续分享,怎么测周期,频率,占空比。

2024-01-03 20:45:49 533

原创 ARM笔记-----输入捕获

当输入的信号存在高频干扰的时候,我们需要对输入信号进行滤波,即进行重新采样,根据采样定律,采样的频率必须大于等于两倍的输入信号。输入信号的有效捕获极性设置,假如我们需要对输入信号 上升沿开始捕获,参数为 TIM_ICPolarity_Rising,如果是下降沿捕获,参数为。如果捕获的脉宽的时间长度超过你的捕获定时器的周期,就会发生溢出,这个我们需要做额外的处理。输入捕获可以对输入的信号的上升沿、下降沿或者双边沿进行捕获,常用的有测量输入信号的脉。当只需要测量输入信号的脉宽时候,用一个捕获通道即可。

2024-01-03 14:44:02 1427 1

原创 ARM-----DMA笔记

直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数 据,但是不需要占用 CPU。当我们配置好数据要从哪里来到哪里去之后,我们还需要知道我们要传输的数据是多少,数据的。控制器独立于内核,属于一个单独的外设,结构比较简单,从编程的角度来看,我们只需。以串口向电脑发送数据为例,要发送的数据很多,每发送完一个,那么存储器的地。,最核心就是配置要传输的数据,包括数据从哪里来,要到哪里去,传输的数据的单。方向我们设置外设为目标地址。传输数据的方向有三个:从外设到存储器,从存储器到外设,从存储器到存储器。

2023-12-18 20:17:03 1383

原创 单片机串口通用收发代码

在下面的程序中,对数据的处理是先接受,在处理,如果在处理的过程中,有串口中断接受数据,那么就把它依次放在队列中,队列的特征是先进先出,在串口中就是先处理先接受的数据,所以根据生产和消费的速度,定义不同大小的消息队列缓冲区就可以了。下面是从我做的项目中截取过来的程序。一般对串口的处理形式是"生产者"和"消费者"的模式,即本次接收的数据要马上处理,否则当数据大量涌进的时候,就来不及"消费"掉生产者(串口接收中断)的数据,那么就会丢失本次的数据处理。有了以上的接收方式,对一般的串口数据处理是没有问题的了。

2023-11-24 09:14:58 338

原创 STM32/N32G455国民科技芯片驱动DS1302时钟---笔记

根据DS1302的特殊寄存器,假设现在是15秒,那么1302的寄存器里面存储的是0x15,而不是0x0F,也就是说十六进制的0xAB,表示一个十进制数,高四位A代表十位,低四位B代表个位。然后后面的代码就照抄就行,只要会IIC,SPI协议,这些一看就明白是什么意思啦,无非就是移位和最高/最低位判断,然后将DATA拉高或者拉低,换汤不换药,简简单单。好,我们来分析上面的也就是说十六进制的0xAB,表示一个十进制数,高四位A代表十位,低四位B代表个位这句话。所以上面一大堆,可能看的很乱,来,我们现在来捋一捋。

2023-11-18 14:08:57 1610

原创 一个项目多个工程实现方法

一个项目中,往往会有多个工程,以便管理不同的代码。通常情况是面向不同客户或者debug调试才需要这样使用。以上就是实际项目中常用的调试,区分工程的手段,以上仅为自己的笔记,如果对你有帮助,那么最好不过,共勉!注: 关于写预编译代码,在哪都可以写,我这里给出2种方法。同样,我们在Client_C工程下定义Client_C。下面笔者通过一个简单的demo来说明一下使用方法。2.随便选择一个工程,如图(我选择。3.1 在代码本身里面写。3.2 在工程配置下写。

2023-10-16 13:49:09 260

原创 stm32--独立看门狗

2.看门狗其实是12bit递减计数器,,减到0会产生一个复位信号,这时会产生复位,如果在减到0之前,我们重新装载计数器值,这样就不会复位。所以在程序你认为会卡死的地方,写上喂狗,如果喂狗成功,那么程序没卡死,反之。1.看门狗的作用:防止程序异常跑飞,跑飞时,进行系统复位,从而不会导致代码瘫痪,奔溃卡死在某段程序。1.关闭写保护(只有关闭写保护才可以对独立看门狗进行写操作)最近学习到独立看门狗,总结下笔记。2.设置预分频系数和重装载值。

2023-09-11 10:19:37 462

原创 指针作为输入参数和输出参数

可以知道,改变的是地址里面的值。

2023-07-17 18:44:06 189

原创 STM32驱动W25Q64---笔记

它由主机产生,决定了通信的速率,不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为fpclk/2,两个设备之间通讯时,通讯速率受限于低速设备。主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。数据可靠性高:由于EEPROM是非易失性存储器,所以它的数据可以长时间保持,并且不会因为断电或者其它故障导致数据丢失。

2023-06-02 00:30:00 866

原创 FreeRtos学习过程笔记1

本文是根据正点原子的FreeRtos的视频来总结的个人笔记。仅供自己理解为主导,若对你有帮助,那么最好不过,共勉!

2023-05-25 14:48:58 158 1

原创 STM32驱动超声波+OLED显示,并上传数据到云端(ONENET)

将HC-SR04超声波测距模块的Trig引脚连接到STM32F103C8T6单片机的GPIO口(例如PB10),将Echo引脚连接到另一个GPIO口(例如PB11)。在代码中,变量"t"保存回响时间,变量"lengthTemp"保存单次测量得到的距离值(以厘米为单位),变量"sum"保存多次测量时得到的距离值总和。这个函数会进行5次测量,然后将这5次测量的平均值作为最终的距离值,并返回。函数使用HC-SR04超声波传感器进行测量,该传感器通过发送超声波脉冲并测量返回的回响时间来计算物体与传感器之间的距离。

2023-05-14 22:20:21 2450 2

原创 N32G435国民科技--定时器触发ADC,DMA数据转运

1

2023-05-03 19:15:00 461

原创 基于stm32智能语音电梯消毒系统

1.HC-SR501人体红外传感器驱动说明:我把传感器密封在盒子里面时,一直都是低电平,当我打开时,是高电平(检测到人),说明符合我们的预期,那么,这个模块就算驱动完成!这里的结果是这样的,当检测到人=1时,会延续3-5秒钟为0,然后又为1(前提是还能检测到人),这个根据你拧这个有关。后面持续更新....2023/03/14。

2023-03-14 19:41:56 4355 14

原创 stm32驱动点阵屏显示图片

因为我需要动态显示,所以定义了一个数组指针,里面的成员变量都是我要显示的图案,我只需要通过索引就能更改图片。取模软件和我一样的配置就行,记得选择。stm32驱动点阵屏显示图片。只要能显示字符就能显示图片。

2023-02-08 15:48:54 1027

原创 STM32+OLED(IIC)显示中文+汉字滚动

其实很简单,加一个函数+字库就行了,看我下面的代码吧函数字库主函数调用。

2023-01-05 20:43:31 1023 4

原创 2023学习心得01

1.4 思路是这样的,当按键按下,会类似Fun_Mem.Process=Men;这样赋值,然后主函数一直在轮询判断Fun_Mem.Process的值是多少,从而刷新对应的界面,看1.5的图。1.2结构体的初始化,都是一一对应的,其中UNIT_Key_Pro是具体是执行函数,如下图。这样就能显示了,以上内容仅作为自己的学习笔记,如对你有帮助,那最好不过,共勉!1.首先来分析按键的框架,这里用到了函数指针,不同的可以看我之前的文章→。2023年,加足马力,继续提升自己!的功能,这里只是个简单的例子。

2023-01-05 16:52:53 443 1

原创 IIC通用模板

【代码】IIC通用模板。

2022-12-24 16:50:53 295 1

原创 结构体嵌套函数指针

所以执行调用这个结构体成员变量的时候,会调用这个函数,因为一开始已经把函数的入口地址分配好了,只需要调用结构体成员变量就能够实现调用函数。首先,和平常创建一个结构体一样,唯独不同的就是里面的变量是一个函数指针,关于函数指针的内容,原理,我这里就不多解释说明了,去搜一下都有很多。说明:以上所有内容均为自己笔记,仅让自己理解为主导,如果对你有帮助,那就最好不过,共勉!是一个变量,是一个变量,是一个变量(重要的事情说三遍)!先看代码,试着理解一下,不理解再看我后面的解释。的,每个函数都是有入口地址的。

2022-12-24 16:13:09 3088

原创 C 字符串函数 sprintf

sprintf最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa(把一个整数转换为字符串)。1. 把整数425打印成一个字符串保存在s中。这样s就是"425"了,不再是整数了。

2022-12-21 17:08:57 269

原创 4线SPI驱动OLED常规操作

拿到一块点阵屏幕,首先找卖家拿驱动例程步骤。

2022-12-16 08:41:04 1026

原创 Stm32F103c8t6连接阿里云(MQTT协议,100%成功!)

之前有用esp8266来连接阿里云,这次使用stm32,其实没什么难度的,就是让单片机发送AT指令就行了。至于阿里云怎么创建产品,获得三元组那些,可以看我之前的文章。额...其实就这样就已经完成了。如果想把传感器的变量值上次去,就在这里改就行了。1.这里就是通过单片机发送AT指令就行了。下面是我让单片机发送的指令。上面是我准备要发的指令。效果图,就这么简单...

2022-12-13 09:34:57 4517 9

原创 结构体内存对齐,字节计算

2.A是int类型(4位),必须存在4的整数倍的地方,也就是8,12,16都可以,所以我们这里存在8,别问我为什么不存在12,16。了一下,最后一位的数据类型是char的话,就和他的前一位对齐,也就是int,所以char就存在[12,15].最近才理解结构体内存对齐的计算,之前听说过,但没把它当回事。1.C是double类型(8位),存在[0,7]的位置。变量要对齐到某个数字(对齐数)的整数倍的地址处。这句话不理解没关系,下面我通过例子来说清楚。通过上面的解释,这个就好理解了,看注释吧。

2022-12-10 13:49:38 198

原创 个人笔记....

【代码】个人笔记。

2022-12-10 09:24:13 167

原创 “__IO uint32_t“ 中的__IO 表达的意思

搞stm32这么久了,经常看到stm32里面库文件里面有用“_IO”定义的变量,查过一下当时记住了,过段时间又给忘记了。所以才特意的写一个博文来记住。1. volatile变量可变允许除了程序之外的比如硬件来修改他的内容 2. 访问该数据任何对于(volatile unsigned char *)0x20我们分析一下,它是由两部分组成:1)(unsigned char *)0x20,0x20只是个值,前面加(unsigned char *)表示0x20是个地址,而且这个地址类型是unsig

2022-12-07 08:58:09 1043

原创 ESP-01S使用AT指令连接阿里云

这次分享下ESP8266-01S使用AT指令连接阿里云,为了后面stm32--esp-01s-阿里云(MQTT)做铺垫目录步骤:1.烧录阿里云固件首先我们打开->安信可官网下载阿里云的固件,如图1.1串口助手与esp-01s接线说明注:文章后面会附上本文提及到的的所有资料。2.在阿里云注册设备,产品等操作(不懂的可以看-->)注册阿里云设备,产品3.串口助手发送AT指令我先把所有需要发送的AT指令粘贴上来先准备软件:串口助手准备硬件:esp-01s 选择这个固件,下载。 这是下载下来的。先保存。再去下载

2022-12-03 08:29:26 5552 30

原创 ESP32-WROVER-B使用arduino连接阿里云

ESP系列单片机连接入阿里云,我已经写了2篇文章了,这里才换一种风格代码来写一下。这里不会说的很详细了,详细的我之前说的很清楚了,可以看我之前的文章。这里,我直接附上代码。不做过多说明,因为这文章我是写给自己看的。

2022-12-01 14:53:11 667

定时器触发ADC,DMA数据转运

定时器触发ADC,DMA数据转运

2023-06-15

stm32f103c8t6+OLED+DHT11+串口显示温湿度

stm32f103c8t6+OLED+DHT11+串口显示温湿度

2022-05-12

C#串口收发数据,很简单!

实现串口收发,详细注释,通俗易懂,,看了代码就发现,就这?就这么简单?是的!不会亏!

2021-07-06

空空如也

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

TA关注的人

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