自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT的一些介绍

QDebug 是QT中用于输出调试信息的一个类,它提供了一种方便的方式来输出文本到标准输出,这对于调试QT应用程序非常有用。③ 使用lamda表达式进行编码 这个方式无需再去构造函数。②使用connect直接进行编码。下面是wigget.cpp文件。下面是wigget.h文件。

2025-06-20 14:56:50 322

原创 Cpp 知识3

当使用protected继承时,所使用的基类成员时为public会换成protected 再去看下面的protected权限 类内部是可以访问的 但是同一类的对象是不能访问的 同理。//多态 向下兼容。一旦在基类中声明为虚函数,该函数在所有派生类中自动成为虚函数,无论是否使用virtual关键字。override仅应用于派生类中重写基类的虚函数。如果类中有虚函数,通常应该将析构函数也声明为虚的。基类/派生类构造函数。

2025-06-11 10:28:52 554

原创 CPP基础(2)

传递参数时 采用引用引用很容易与指针混淆,他们之间有三个主要的不同:①不存在空引用 ,引用必须连接到一块合法的内存②一旦引用被初始化为一个对象,就不能被指向另一个对象,指针可以在任何时候被指向到另一个对象。③引用必须在创建时被初始化,指针可以在任何事件被初始化④官方没有明确说明,但是引用确实不是传统意义上的独立变量当返回一个引用时,要注意被引用的对象不能超过作用域,所以返回一个对局部变量的引用是不合法的,但是可以返回一个对静态变量的引用。①重载相等的运算符operator==

2025-06-10 15:52:08 1020

原创 CPP基础

cout << "你好世界 我是C++" << endl;其中cout相当于C语言中的printf << 是指最后所有的输入都放在cout中 endl为换行 cerr << "程序错误退出" << endl;Lambda 表达式是C++ 引入的一种匿名函数的方式,它允许你在需要函数的地方内联的定义函数,而无需单独命名函数。问题④ 在C++中,通过std::to string ()函数,将整形数转化为字符串。当把在c语言中的结构体搬到c++中 会出现一系列的问题。= 可以捕获所有的变量。

2025-06-06 19:35:45 324

原创 FreeRTOS的简单介绍

FreeRTOS并不是实时操作系统,因为它是分时复用的利用CubeMX快速移植二、快速移植流程1. 在SYS选项里,将Debug设为,并且将设为TIM2 (其它定时器也行)。为何要如此配置?下文解说。裸机的时钟源默认是SysTick,但是开启FreeRTOS后,FreeRTOS会占用SysTick(用来生成1ms定时,用于任务调度),所以需要需要为其他总线提供另外的时钟源。2.将RCC里的HSE设置为。3. 打开串口4.时钟按下图配置5.选择。

2025-06-03 19:59:17 879

原创 天气预报实时报道实现

【代码】天气预报实时报道实现。

2025-05-24 18:50:48 240

原创 物联网 温湿度上传onenet

①先初始化mqtt ②connect mqtt ③publish。①onenet.h 的宏函数更改。main.c 函数核心代码如下。②esp8266.h宏函数定义。onenet上连接结果如下。主要更改的代码部分时宏函数。串口调试助手的结果图如下。

2025-05-23 20:35:40 489

原创 DHT11介绍

DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DHT11传感器内包含一个温湿度测量元件和一个高性能MCU。DHT11数据格式DHT11的DATA传输一次完成整的数据为40bit,按照高位在前,低位在后的顺序传输数据格式为 8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位。

2025-05-22 19:41:45 279

原创 MQTT报文介绍

connect报文有三个部分组成,三个部分。

2025-05-21 16:13:47 638

原创 CAN 介绍

与 I2C、SPI 等具有时钟信号的同步通讯方式不同,CAN 通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。(485通讯也是差分信号,提高抗干扰)。物理层:控制器 收发器 终端电阻高速:低速如图是can的两种硬件连接如下:控制器与收发器之间通过CAN_Tx 及 CAN_Rx信号线相连,收发器与 CAN 总线之间使用 CAN_High 及 CAN_Low信号线相连;

2025-05-19 15:30:41 899

原创 低功耗模式介绍

特点:系统时钟停止,1.8V内核电源继续工作,PLL(锁相环,关闭后,系统失去倍频效果)、HIS(高速内部振荡器,内部时钟源,不再为CPU和外设提供高速时钟)和HSE RC(高速外部振荡器,用于系统时钟的基准源,失去高精度的时钟源)振荡器关闭,寄存器和SRAM数据保留。:内核(CPU)停止运行,但系统时钟 (Systick) 和一些外设(如NVIC)仍然可以工作。:内核电源关闭,所有寄存器和SRAM内容丢失,仅保留备份寄存器和待机电路供电。种模式能够实现最低功耗,适用于极限低功耗场景。

2025-05-18 20:22:50 529

原创 实时时钟项目设计

即核心代码为修改时间部分 :①当按下key1时,进入到修改时间的部分,此时再按下key2会偏移修改的位置,按下key3和key4时会增加数值和减少数值(有范围限制)按下key1会保存和退出当前模式,②当按下key2时会进入到闹钟的修改部分,同时key2偏移 key1 保存和退出,key3 4 增加数值或者减少数值③按下key 3 key4 停止蜂鸣器报警。rtc内置时钟运行规则,可以直接通过RTC寄存器获取时间,无需手动计算进位。main.c函数如下。oled.c代码如下。

2025-05-18 16:15:46 216

原创 RTC实时时钟

1、介绍RTC(Real Time Clock)实时时钟,本质是一个定时器RTC是一个独立的定时器,可为系统提供时钟和日历的功能 RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD(2.0~3.6V)断电后可借助VBAT(1.8~3.6V)供电继续走时32位的可编程计数器,可对应Unix时间戳的秒计数器 20位的可编程预分频器,可适配不同频率的输入时钟,可选择三种RTC时钟源: HSE时钟除以128(通常为8MHz/128) LSE振荡器时钟(通常为32.768KHz)

2025-05-17 14:03:25 233

原创 BKP实验

1. 什么是BKP?备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会 被复位。此外, BKP控制寄存器用来管理侵入检测和RTC校准功能。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。1.通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟。2.电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。

2025-05-15 11:02:05 274

原创 智能门禁项目

keyboard.c文件。password.c文件。

2025-05-15 10:03:05 1203

原创 薄膜矩阵键盘的简单介绍

当按下某一按键时(例如按下第四行第三列的按键)对应行列接通,那么这一行(即第四行就会触发下降沿)因此就会确认按下的在第四行,此时该按键所在列会变为高电平 因此就可以确定行列。1.把所有的行引脚设为中断引脚,下降沿触发,且上拉输出高电平(即正常为上拉状态 下降沿触发)薄膜式的矩阵键盘都没有引脚标识,键盘正对自己,引脚是先行后列,从小到大。2.把所有的列引脚设为输入,内部下拉(即正常状态下为下拉状态)但因其逐行逐列法过于复杂 因此我们采用中断来实现识别。矩阵键盘的工作原理———逐行逐列扫描法。

2025-05-15 09:52:33 309

原创 W25Q128介绍

可以进行 读改写的操作 其中只能写0,不能写1,写1需要考擦除。W25Q128常用的指令。

2025-05-07 14:15:11 202

原创 SPI介绍

④IIC通讯速率一般为100KHZ左右,而SPI可以达到50MHZ SPI速度快。①IIC是半双工通讯,无法同时收发信息,SPI是全双工通讯,可以同时收发信息;SPI总线包含4条通讯线,分别为SS、SCK、MOSI、MISO、作用介绍如下。③IIC需要通过地址选择从机,而SPI只需要一个引脚即可选中从机;②IIC通讯协议复杂,而SPI通讯协议简单。⑤IIC需要的通讯线较少,而SPI需要较多。MISO 主设备数据输入 从设备数据输出。MOSI 主设备数据输出 从设备数据输入。模式0和模式3最常用。

2025-05-07 10:55:05 325

原创 OLED显示字符串 汉字 图形

【代码】OLED显示字符串 汉字 图形。

2025-04-30 16:36:48 416

原创 OLED屏幕简单介绍

每次写入数据后,列地址指针会自动增加1,但如果到达该页的终止列地址,则列地址指针会复位到该页的起始列,而页地址指针不会改变。对上图进行解释,OLED屏接在Slave Address处,前六位为固定的地址,SAO当上拉时置1,反之为0,RW为读写位,置1为读,置0为写。在此模式下,每次数据访问后,列地址指针会自动增加1。如果列地址指针到达列终止地址,则列地址指针会复位到列起始地址,并且页地址指针也会自动增加1。如果页地址指针到达页终止地址,则页地址指针会复位到页起始地址,并且列地址指针也会自动增加1。

2025-04-29 14:54:22 352

原创 IIC 通信协议

1.串口通信通常需要至少三条线(TX、RX和GND),而IIC总线需要两条信号线(SDA和SCL);2.串口通信仅支持一对一通信,而IIC总线支持多机通信,润许单个主机与多个从机设备进行通信;3.串口通信通常无应答机制,而IIC必须有应答机制;4.串口通讯一般是异步通信,而IIC使用同步传输方式,数据在时钟信号(SCL)的控制下传输;

2025-04-28 21:06:30 284

原创 吸烟室管控系统

实现的功能:通过MQ-2监测当前环境的烟雾浓度,软件设置报警上限显示的是电压值并显示在lcd1602的第二行,第一行是实际的检测值,这里引用了ADC单通道采集DMA读取,显示的也是电压值,具体原理查看烟雾报警器的原理,如果当前的数值大于设置的上限则会导致蜂鸣器报警,并会开启风扇,反之则不会。并且这里还设置了手动调报警上限值的两个按钮,可以随时实现调大调小。

2025-04-28 19:19:49 246

原创 MQ-2烟雾传感器

当 MQ-2 烟雾传感器在200到300摄氏度环境时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。(有的小伙伴可能不理解为什么烟雾和可燃气体扯在一起了,这里给大家回忆一下烟雾的化学定义:雾是指空气中漂浮的小液滴,烟是可燃物在没有完全燃烧的情况下产生的悬浮在空气中的可见微粒,也就是固体小颗粒。MQ-2,烟雾传感器模块,也叫可燃气体检测模块。

2025-04-28 15:27:36 958

原创 ADC单通道采集实验

ADC单通道采集实验。

2025-04-26 17:10:43 300

原创 ADC介绍

即为模拟/数字转换器,ADC可以将引脚上持续变化的模拟电压转换为内存中储存的数字变量,简历模拟电路到数字电路的桥梁。12位ADC是一种逐次逼近型的模拟数字转换器(0-4095)。STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道ADC工作原理(逐次逼近型)逐次逼近寄存器经过D/A转换器进入到比较器中 和输入的模拟量进行比较从而不断修正逐次逼近寄存器的值 当再次比较后差距不大则逐次逼近寄存器将数据放在输出缓冲器中ADC的性能指标量程:能测量的电压范围(0-3.3v)

2025-04-26 14:48:30 604

原创 DMA的三种传输功能

利用空闲中断 和DMA传输储存在缓冲区。dma.c的代码如下。main.c代码如下。

2025-04-25 16:35:39 249

原创 DMA介绍

②存储器——>外设 (例如:将某数据buf写入串口TDR寄存器)③没什么技术含量(CPU节约出来的时间可以处理更重要的事)③外设——>(例如:将串口RDR寄存器写入某数据buf)DMA的意义:代替CPU区=去搬运数据,为CPU减负。简单描述DMA是数据搬运工。①数据搬运工作比较耗时间。②数据搬运工时效要求很高。①存储器——>存储器。

2025-04-24 19:44:36 277

原创 4G模块介绍

4G模块介绍4G 模块市面上有很多厂家生产的不同型号,一般购买的时候厂家都会给你用户手册,大家可以看着使用。本次我使用的是亿佰特公司的 E840-TTL(EC03-DNC),如果你是小白,跟着本文学一遍,其他 4G模块也就一通百通了。官网链接,大家有需要可以去下载用户手册和工具软件:EC03-DNC 4G模块2.1 EC03-DNC介绍EC03-DNC 是亿佰特推出的 LTE CAT1 数传模块产品,该产品软件功能完善,覆盖绝大多数常规应用场景。支持移动、联通、电信 4G卡。

2025-04-24 16:45:02 651

原创 内网穿透啊

一般是指连接一个路由器的 即局域网是指在某一区域内由多台计算机互联成的计算机组。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。其中花生壳的作用是将内网的地址转化为外网的地址,这样外网的手机地址就可以访问了。

2025-04-24 11:04:57 314

原创 wifi遥控风扇项目

其中receive_data。

2025-04-23 16:27:21 142

原创 编程实现ESP8266分别作为服务端 客户端

④esp8266_connection_mode //连接模式 模式有 ESP8266_SINGLE_CONNECTION ESP8266_MULTI_CONNECTION。② esp8266_set_mode() //模式设置 mode 有ESP8266_ESP8266_STA_MODE ESP8266_AP_MODE ESP8266_STA_AP_MODE。⑤esp8266_connect_tcp_server() //连接TCP服务器。

2025-04-23 14:10:19 247

原创 ESP8266简单介绍

CIFSR:STAIP,"192.168.1.105" //结果。+CIFSR:STAMAC,"84:f3:eb:4e:bd:7a" //结果。AT+CWJAP="TP-LINK_408","xingzhilou408" //指令。AT+CIPMODE=1 //开器透传模式。AT+CWMOOE=1 //设置其为STA模式。

2025-04-18 19:59:32 694

原创 蓝牙遥控插座项目

其中核心代码为此中断服务函数 获取的数据主要存储在uart2_rx_buf中 strstr函数是一个用于查找子字符串的库函数。这个函数在一个字符串(haystack)中搜索另一个字符串(needle)的第一次出现,并返回一个指向该位置的指针。如果没有找到匹配的子字符串,则返回NULL。通过手机端发送on off 就可以实现控制继电器开关。因此在这里用于查找是否为on off。以下为手机端HC蓝牙助手截图。

2025-04-18 15:49:14 295

原创 蓝牙的AT指令

不区分大小写,均以回车、换行结尾,部分 AT 指令需要对模块 34 脚 PIO11 一直置高电平才有效。与手机连接后(最好使用安卓手机app HC蓝牙调试助手) 串口调试助手就能和手机实现信息互联。在没有与手机连接时 串口数据接收如下。

2025-04-17 14:57:45 518

原创 HC-08蓝牙模块介绍

上面的「连接」是指模块通过蓝牙协议连接上主机或从机,并非物理意义上的连接。HC-08 蓝牙模块是通过串口与单片机进行通信,这个模块既可以作为主机也可以作为从机(通过 AT 指令配置)。注意,在硬件接线的时候蓝牙模块的 TXD 要和单片机的 RXD 相连接,蓝牙模块的 RXD 要和单片机的 TXD 相连接,也就是所谓的「交叉接线」。• VCC:输入 3.2~6V 的电源(注意,上面一层邮票口的模块不能接 5V 的电源,需要底板降压至 3.3V);当按键按下后,主机将清除已被记录的从机地址。

2025-04-16 20:57:52 638

原创 串口通信及框图

采用差分电平,逻辑1:两线间的电压差为+(0.2-6)v 逻辑0:两线间的电压差为-(0.2-6)v。串口通信的接口类型包括TTL、CMOS、RS-232和RS-485等,他们分别代表了不同的电平水平。逻辑1:-3v---- -15v 逻辑0:+3v-----+15v。逻辑1:供电电压的最大值 逻辑0:0v。逻辑1:5v 逻辑0:0v。

2025-03-10 16:14:54 231

原创 串口简单讲解

例如,当系统以每秒50个二进制符号传输时,信息速率为50bit/s,信号速率也为50Bd(波特)。或者表示信号调制过程中,单位时间内调制信号波形的变换次数,通常用RB表示,单位是波特(Bd或Baud,前者规范)。如果1码元的时间长短为200ms,则每秒可传输5个码元,那么码元速率(波特率)就是5Bd。异步通信:双方不需要严格的时钟同步,,每个数据块之间通过特定的起始位和停止位进行分隔,接受方可以独立地识别每个数据块。,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。

2025-01-06 10:38:22 261

原创 独立开门狗与窗口看门狗的区别

2025-01-06 10:03:14 154

原创 WWDG窗口看门狗实验

喂狗环节 不能主函数中while进行 因为必须要注意复位的条件 (延时时间注意)以下为wwdg.c文件。按照如下流程进行编程。

2024-12-23 20:38:07 234

原创 WWDG窗口开门狗

寄存器(WWDG_CFR)储存的是 W[6:0]的值 寄存器(WWDG_CR)储存的是T[6:0]的值 经过比较 当T[6:0]>W[6:0]时 置1 经过与门 后复位置1 达到最终目的。窗口看门狗通常用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障,会在满足一定条件的情况下 进行复位动作。产生复位的条件 ① 当递减计数器的值小于0x40(若看门狗被启动)则产生复位动作。(可超时的时间范围是T[5:0]:在0X40-W[6:0]之间)用于设置 预分频器2。

2024-12-23 18:49:36 419

空空如也

空空如也

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

TA关注的人

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